# -*- coding: utf-8 -*-
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from __future__ import annotations

from typing import MutableMapping, MutableSequence

from google.protobuf import any_pb2  # type: ignore
from google.protobuf import struct_pb2  # type: ignore
import proto  # type: ignore

__protobuf__ = proto.module(
    package="google.cloud.compute.v1beta",
    manifest={
        "AWSV4Signature",
        "AbandonInstancesInstanceGroupManagerRequest",
        "AbandonInstancesRegionInstanceGroupManagerRequest",
        "AcceleratorConfig",
        "AcceleratorType",
        "AcceleratorTypeAggregatedList",
        "AcceleratorTypeList",
        "AcceleratorTypesScopedList",
        "Accelerators",
        "AccessConfig",
        "AddAccessConfigInstanceRequest",
        "AddAssociationFirewallPolicyRequest",
        "AddAssociationNetworkFirewallPolicyRequest",
        "AddAssociationOrganizationSecurityPolicyRequest",
        "AddAssociationRegionNetworkFirewallPolicyRequest",
        "AddHealthCheckTargetPoolRequest",
        "AddInstanceTargetPoolRequest",
        "AddInstancesInstanceGroupRequest",
        "AddNetworkInterfaceInstanceRequest",
        "AddNodesNodeGroupRequest",
        "AddPacketMirroringRuleFirewallPolicyRequest",
        "AddPacketMirroringRuleNetworkFirewallPolicyRequest",
        "AddPeeringNetworkRequest",
        "AddResourcePoliciesDiskRequest",
        "AddResourcePoliciesInstanceRequest",
        "AddResourcePoliciesRegionDiskRequest",
        "AddRuleFirewallPolicyRequest",
        "AddRuleNetworkFirewallPolicyRequest",
        "AddRuleOrganizationSecurityPolicyRequest",
        "AddRuleRegionNetworkFirewallPolicyRequest",
        "AddRuleRegionSecurityPolicyRequest",
        "AddRuleSecurityPolicyRequest",
        "AddSignedUrlKeyBackendBucketRequest",
        "AddSignedUrlKeyBackendServiceRequest",
        "Address",
        "AddressAggregatedList",
        "AddressList",
        "AddressesScopedList",
        "AdvancedMachineFeatures",
        "AggregatedListAcceleratorTypesRequest",
        "AggregatedListAddressesRequest",
        "AggregatedListAutoscalersRequest",
        "AggregatedListBackendServicesRequest",
        "AggregatedListDiskTypesRequest",
        "AggregatedListDisksRequest",
        "AggregatedListForwardingRulesRequest",
        "AggregatedListFutureReservationsRequest",
        "AggregatedListGlobalOperationsRequest",
        "AggregatedListHealthChecksRequest",
        "AggregatedListInstanceGroupManagersRequest",
        "AggregatedListInstanceGroupsRequest",
        "AggregatedListInstanceTemplatesRequest",
        "AggregatedListInstancesRequest",
        "AggregatedListInstantSnapshotsRequest",
        "AggregatedListInterconnectAttachmentsRequest",
        "AggregatedListMachineTypesRequest",
        "AggregatedListNetworkAttachmentsRequest",
        "AggregatedListNetworkEdgeSecurityServicesRequest",
        "AggregatedListNetworkEndpointGroupsRequest",
        "AggregatedListNetworkFirewallPoliciesRequest",
        "AggregatedListNodeGroupsRequest",
        "AggregatedListNodeTemplatesRequest",
        "AggregatedListNodeTypesRequest",
        "AggregatedListPacketMirroringsRequest",
        "AggregatedListPublicDelegatedPrefixesRequest",
        "AggregatedListRegionCommitmentsRequest",
        "AggregatedListReservationsRequest",
        "AggregatedListResourcePoliciesRequest",
        "AggregatedListRoutersRequest",
        "AggregatedListSecurityPoliciesRequest",
        "AggregatedListServiceAttachmentsRequest",
        "AggregatedListSnapshotsRequest",
        "AggregatedListSslCertificatesRequest",
        "AggregatedListSslPoliciesRequest",
        "AggregatedListStoragePoolTypesRequest",
        "AggregatedListStoragePoolsRequest",
        "AggregatedListSubnetworksRequest",
        "AggregatedListTargetHttpProxiesRequest",
        "AggregatedListTargetHttpsProxiesRequest",
        "AggregatedListTargetInstancesRequest",
        "AggregatedListTargetPoolsRequest",
        "AggregatedListTargetTcpProxiesRequest",
        "AggregatedListTargetVpnGatewaysRequest",
        "AggregatedListUrlMapsRequest",
        "AggregatedListVpnGatewaysRequest",
        "AggregatedListVpnTunnelsRequest",
        "AliasIpRange",
        "AllocationAggregateReservation",
        "AllocationAggregateReservationReservedResourceInfo",
        "AllocationAggregateReservationReservedResourceInfoAccelerator",
        "AllocationReservationSharingPolicy",
        "AllocationResourceStatus",
        "AllocationResourceStatusSpecificSKUAllocation",
        "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk",
        "AllocationSpecificSKUAllocationReservedInstanceProperties",
        "AllocationSpecificSKUReservation",
        "Allowed",
        "AnnouncePublicAdvertisedPrefixeRequest",
        "AnnouncePublicDelegatedPrefixeRequest",
        "ApplyUpdatesToInstancesInstanceGroupManagerRequest",
        "ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest",
        "AttachDiskInstanceRequest",
        "AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest",
        "AttachNetworkEndpointsNetworkEndpointGroupRequest",
        "AttachNetworkEndpointsRegionNetworkEndpointGroupRequest",
        "AttachedDisk",
        "AttachedDiskInitializeParams",
        "AuditConfig",
        "AuditLogConfig",
        "Autoscaler",
        "AutoscalerAggregatedList",
        "AutoscalerList",
        "AutoscalerStatusDetails",
        "AutoscalersScopedList",
        "AutoscalingPolicy",
        "AutoscalingPolicyCpuUtilization",
        "AutoscalingPolicyCustomMetricUtilization",
        "AutoscalingPolicyLoadBalancingUtilization",
        "AutoscalingPolicyScaleDownControl",
        "AutoscalingPolicyScaleInControl",
        "AutoscalingPolicyScalingSchedule",
        "Backend",
        "BackendBucket",
        "BackendBucketCdnPolicy",
        "BackendBucketCdnPolicyBypassCacheOnRequestHeader",
        "BackendBucketCdnPolicyCacheKeyPolicy",
        "BackendBucketCdnPolicyNegativeCachingPolicy",
        "BackendBucketList",
        "BackendBucketListUsable",
        "BackendBucketUsedBy",
        "BackendCustomMetric",
        "BackendService",
        "BackendServiceAggregatedList",
        "BackendServiceCdnPolicy",
        "BackendServiceCdnPolicyBypassCacheOnRequestHeader",
        "BackendServiceCdnPolicyNegativeCachingPolicy",
        "BackendServiceConnectionTrackingPolicy",
        "BackendServiceCustomMetric",
        "BackendServiceDynamicForwarding",
        "BackendServiceDynamicForwardingIpPortSelection",
        "BackendServiceFailoverPolicy",
        "BackendServiceGroupHealth",
        "BackendServiceHAPolicy",
        "BackendServiceHAPolicyLeader",
        "BackendServiceHAPolicyLeaderNetworkEndpoint",
        "BackendServiceHttpCookie",
        "BackendServiceIAP",
        "BackendServiceList",
        "BackendServiceListUsable",
        "BackendServiceLocalityLoadBalancingPolicyConfig",
        "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy",
        "BackendServiceLocalityLoadBalancingPolicyConfigPolicy",
        "BackendServiceLogConfig",
        "BackendServiceNetworkPassThroughLbTrafficPolicy",
        "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity",
        "BackendServiceReference",
        "BackendServiceTlsSettings",
        "BackendServiceTlsSettingsSubjectAltName",
        "BackendServiceUsedBy",
        "BackendServicesGetEffectiveSecurityPoliciesResponse",
        "BackendServicesScopedList",
        "BfdPacket",
        "BfdStatus",
        "BfdStatusPacketCounts",
        "BgpRoute",
        "BgpRouteAsPath",
        "BgpRouteNetworkLayerReachabilityInformation",
        "Binding",
        "BulkInsertDiskRequest",
        "BulkInsertDiskResource",
        "BulkInsertInstanceRequest",
        "BulkInsertInstanceResource",
        "BulkInsertInstanceResourcePerInstanceProperties",
        "BulkInsertOperationStatus",
        "BulkInsertRegionDiskRequest",
        "BulkInsertRegionInstanceRequest",
        "BulkSetLabelsDiskRequest",
        "BulkSetLabelsRequest",
        "BulkZoneSetLabelsRequest",
        "BundledLocalSsds",
        "CacheInvalidationRule",
        "CacheKeyPolicy",
        "CalendarModeAdviceRequest",
        "CalendarModeAdviceResponse",
        "CalendarModeAdviceRpcRequest",
        "CalendarModeRecommendation",
        "CancelFutureReservationRequest",
        "CancelInstanceGroupManagerResizeRequestRequest",
        "CancelRegionInstanceGroupManagerResizeRequestRequest",
        "CircuitBreakers",
        "CloneRulesFirewallPolicyRequest",
        "CloneRulesNetworkFirewallPolicyRequest",
        "CloneRulesRegionNetworkFirewallPolicyRequest",
        "Commitment",
        "CommitmentAggregatedList",
        "CommitmentList",
        "CommitmentResourceStatus",
        "CommitmentsScopedList",
        "ConfidentialInstanceConfig",
        "ConnectionDraining",
        "ConsistentHashLoadBalancerSettings",
        "ConsistentHashLoadBalancerSettingsHttpCookie",
        "CopyRulesOrganizationSecurityPolicyRequest",
        "CorsPolicy",
        "CreateInstancesInstanceGroupManagerRequest",
        "CreateInstancesRegionInstanceGroupManagerRequest",
        "CreateMembersInterconnectGroupRequest",
        "CreateSnapshotDiskRequest",
        "CreateSnapshotRegionDiskRequest",
        "CrossSiteNetwork",
        "CrossSiteNetworkList",
        "CustomErrorResponsePolicy",
        "CustomErrorResponsePolicyCustomErrorResponseRule",
        "CustomerEncryptionKey",
        "CustomerEncryptionKeyProtectedDisk",
        "Data",
        "Date",
        "DeleteAccessConfigInstanceRequest",
        "DeleteAddressRequest",
        "DeleteAutoscalerRequest",
        "DeleteBackendBucketRequest",
        "DeleteBackendServiceRequest",
        "DeleteCrossSiteNetworkRequest",
        "DeleteDiskRequest",
        "DeleteExternalVpnGatewayRequest",
        "DeleteFirewallPolicyRequest",
        "DeleteFirewallRequest",
        "DeleteForwardingRuleRequest",
        "DeleteFutureReservationRequest",
        "DeleteGlobalAddressRequest",
        "DeleteGlobalForwardingRuleRequest",
        "DeleteGlobalNetworkEndpointGroupRequest",
        "DeleteGlobalOperationRequest",
        "DeleteGlobalOperationResponse",
        "DeleteGlobalOrganizationOperationRequest",
        "DeleteGlobalOrganizationOperationResponse",
        "DeleteGlobalPublicDelegatedPrefixeRequest",
        "DeleteHealthCheckRequest",
        "DeleteImageRequest",
        "DeleteInstanceGroupManagerRequest",
        "DeleteInstanceGroupManagerResizeRequestRequest",
        "DeleteInstanceGroupRequest",
        "DeleteInstanceRequest",
        "DeleteInstanceTemplateRequest",
        "DeleteInstancesInstanceGroupManagerRequest",
        "DeleteInstancesRegionInstanceGroupManagerRequest",
        "DeleteInstantSnapshotRequest",
        "DeleteInterconnectAttachmentGroupRequest",
        "DeleteInterconnectAttachmentRequest",
        "DeleteInterconnectGroupRequest",
        "DeleteInterconnectRequest",
        "DeleteLicenseRequest",
        "DeleteMachineImageRequest",
        "DeleteNetworkAttachmentRequest",
        "DeleteNetworkEdgeSecurityServiceRequest",
        "DeleteNetworkEndpointGroupRequest",
        "DeleteNetworkFirewallPolicyRequest",
        "DeleteNetworkInterfaceInstanceRequest",
        "DeleteNetworkRequest",
        "DeleteNodeGroupRequest",
        "DeleteNodeTemplateRequest",
        "DeleteNodesNodeGroupRequest",
        "DeleteOrganizationSecurityPolicyRequest",
        "DeletePacketMirroringRequest",
        "DeletePerInstanceConfigsInstanceGroupManagerRequest",
        "DeletePerInstanceConfigsRegionInstanceGroupManagerRequest",
        "DeletePublicAdvertisedPrefixeRequest",
        "DeletePublicDelegatedPrefixeRequest",
        "DeleteRegionAutoscalerRequest",
        "DeleteRegionBackendServiceRequest",
        "DeleteRegionDiskRequest",
        "DeleteRegionHealthCheckRequest",
        "DeleteRegionHealthCheckServiceRequest",
        "DeleteRegionInstanceGroupManagerRequest",
        "DeleteRegionInstanceGroupManagerResizeRequestRequest",
        "DeleteRegionInstanceTemplateRequest",
        "DeleteRegionInstantSnapshotRequest",
        "DeleteRegionMultiMigRequest",
        "DeleteRegionNetworkEndpointGroupRequest",
        "DeleteRegionNetworkFirewallPolicyRequest",
        "DeleteRegionNotificationEndpointRequest",
        "DeleteRegionOperationRequest",
        "DeleteRegionOperationResponse",
        "DeleteRegionSecurityPolicyRequest",
        "DeleteRegionSnapshotRequest",
        "DeleteRegionSslCertificateRequest",
        "DeleteRegionSslPolicyRequest",
        "DeleteRegionTargetHttpProxyRequest",
        "DeleteRegionTargetHttpsProxyRequest",
        "DeleteRegionTargetTcpProxyRequest",
        "DeleteRegionUrlMapRequest",
        "DeleteReservationRequest",
        "DeleteResourcePolicyRequest",
        "DeleteRoutePolicyRouterRequest",
        "DeleteRouteRequest",
        "DeleteRouterRequest",
        "DeleteSecurityPolicyRequest",
        "DeleteServiceAttachmentRequest",
        "DeleteSignedUrlKeyBackendBucketRequest",
        "DeleteSignedUrlKeyBackendServiceRequest",
        "DeleteSnapshotRequest",
        "DeleteSslCertificateRequest",
        "DeleteSslPolicyRequest",
        "DeleteStoragePoolRequest",
        "DeleteSubnetworkRequest",
        "DeleteTargetGrpcProxyRequest",
        "DeleteTargetHttpProxyRequest",
        "DeleteTargetHttpsProxyRequest",
        "DeleteTargetInstanceRequest",
        "DeleteTargetPoolRequest",
        "DeleteTargetSslProxyRequest",
        "DeleteTargetTcpProxyRequest",
        "DeleteTargetVpnGatewayRequest",
        "DeleteUrlMapRequest",
        "DeleteVpnGatewayRequest",
        "DeleteVpnTunnelRequest",
        "DeleteWireGroupRequest",
        "DeleteZoneOperationRequest",
        "DeleteZoneOperationResponse",
        "Denied",
        "DeprecateImageRequest",
        "DeprecationStatus",
        "DetachDiskInstanceRequest",
        "DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest",
        "DetachNetworkEndpointsNetworkEndpointGroupRequest",
        "DetachNetworkEndpointsRegionNetworkEndpointGroupRequest",
        "DisableXpnHostProjectRequest",
        "DisableXpnResourceProjectRequest",
        "Disk",
        "DiskAggregatedList",
        "DiskAsyncReplication",
        "DiskAsyncReplicationList",
        "DiskInstantiationConfig",
        "DiskList",
        "DiskMoveRequest",
        "DiskParams",
        "DiskResourceStatus",
        "DiskResourceStatusAsyncReplicationStatus",
        "DiskSettings",
        "DiskSettingsAccessLocation",
        "DiskSettingsAccessLocationAccessLocationPreference",
        "DiskType",
        "DiskTypeAggregatedList",
        "DiskTypeList",
        "DiskTypesScopedList",
        "DisksAddResourcePoliciesRequest",
        "DisksRemoveResourcePoliciesRequest",
        "DisksResizeRequest",
        "DisksScopedList",
        "DisksStartAsyncReplicationRequest",
        "DisksStopGroupAsyncReplicationResource",
        "DisplayDevice",
        "DistributionPolicy",
        "DistributionPolicyZoneConfiguration",
        "Duration",
        "EnableXpnHostProjectRequest",
        "EnableXpnResourceProjectRequest",
        "Error",
        "ErrorDetails",
        "ErrorInfo",
        "Errors",
        "ExchangedPeeringRoute",
        "ExchangedPeeringRoutesList",
        "ExpandIpCidrRangeSubnetworkRequest",
        "Expr",
        "ExternalVpnGateway",
        "ExternalVpnGatewayInterface",
        "ExternalVpnGatewayList",
        "FileContentBuffer",
        "Firewall",
        "FirewallList",
        "FirewallLogConfig",
        "FirewallParams",
        "FirewallPoliciesListAssociationsResponse",
        "FirewallPoliciesScopedList",
        "FirewallPolicy",
        "FirewallPolicyAssociation",
        "FirewallPolicyList",
        "FirewallPolicyRule",
        "FirewallPolicyRuleMatcher",
        "FirewallPolicyRuleMatcherLayer4Config",
        "FirewallPolicyRuleSecureTag",
        "FixedOrPercent",
        "FlexibleTimeRange",
        "ForwardingRule",
        "ForwardingRuleAggregatedList",
        "ForwardingRuleList",
        "ForwardingRuleReference",
        "ForwardingRuleServiceDirectoryRegistration",
        "ForwardingRulesScopedList",
        "FutureReservation",
        "FutureReservationCommitmentInfo",
        "FutureReservationSpecificSKUProperties",
        "FutureReservationStatus",
        "FutureReservationStatusExistingMatchingUsageInfo",
        "FutureReservationStatusLastKnownGoodState",
        "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs",
        "FutureReservationStatusSpecificSKUProperties",
        "FutureReservationTimeWindow",
        "FutureReservationsAggregatedListResponse",
        "FutureReservationsListResponse",
        "FutureReservationsScopedList",
        "FutureResourcesRecommendation",
        "FutureResourcesRecommendationOtherLocation",
        "FutureResourcesSpec",
        "FutureResourcesSpecAggregateResources",
        "FutureResourcesSpecLocalSsdPartition",
        "FutureResourcesSpecLocationPolicy",
        "FutureResourcesSpecLocationPolicyLocation",
        "FutureResourcesSpecSpecificSKUResources",
        "FutureResourcesSpecTargetResources",
        "GRPCHealthCheck",
        "GRPCTLSHealthCheck",
        "GetAcceleratorTypeRequest",
        "GetAddressRequest",
        "GetAssociationFirewallPolicyRequest",
        "GetAssociationNetworkFirewallPolicyRequest",
        "GetAssociationOrganizationSecurityPolicyRequest",
        "GetAssociationRegionNetworkFirewallPolicyRequest",
        "GetAutoscalerRequest",
        "GetBackendBucketRequest",
        "GetBackendServiceRequest",
        "GetCrossSiteNetworkRequest",
        "GetDiagnosticsInterconnectRequest",
        "GetDiskRequest",
        "GetDiskSettingRequest",
        "GetDiskTypeRequest",
        "GetEffectiveFirewallsInstanceRequest",
        "GetEffectiveFirewallsNetworkRequest",
        "GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest",
        "GetEffectiveSecurityPoliciesBackendServiceRequest",
        "GetExternalVpnGatewayRequest",
        "GetFirewallPolicyRequest",
        "GetFirewallRequest",
        "GetForwardingRuleRequest",
        "GetFromFamilyImageRequest",
        "GetFutureReservationRequest",
        "GetGlobalAddressRequest",
        "GetGlobalForwardingRuleRequest",
        "GetGlobalNetworkEndpointGroupRequest",
        "GetGlobalOperationRequest",
        "GetGlobalOrganizationOperationRequest",
        "GetGlobalPublicDelegatedPrefixeRequest",
        "GetGuestAttributesInstanceRequest",
        "GetHealthBackendServiceRequest",
        "GetHealthCheckRequest",
        "GetHealthRegionBackendServiceRequest",
        "GetHealthTargetPoolRequest",
        "GetIamPolicyBackendBucketRequest",
        "GetIamPolicyBackendServiceRequest",
        "GetIamPolicyDiskRequest",
        "GetIamPolicyFirewallPolicyRequest",
        "GetIamPolicyImageRequest",
        "GetIamPolicyInstanceRequest",
        "GetIamPolicyInstanceTemplateRequest",
        "GetIamPolicyInstantSnapshotRequest",
        "GetIamPolicyInterconnectAttachmentGroupRequest",
        "GetIamPolicyInterconnectGroupRequest",
        "GetIamPolicyLicenseRequest",
        "GetIamPolicyMachineImageRequest",
        "GetIamPolicyNetworkAttachmentRequest",
        "GetIamPolicyNetworkFirewallPolicyRequest",
        "GetIamPolicyNodeGroupRequest",
        "GetIamPolicyNodeTemplateRequest",
        "GetIamPolicyRegionBackendServiceRequest",
        "GetIamPolicyRegionDiskRequest",
        "GetIamPolicyRegionInstantSnapshotRequest",
        "GetIamPolicyRegionNetworkFirewallPolicyRequest",
        "GetIamPolicyRegionSnapshotRequest",
        "GetIamPolicyReservationRequest",
        "GetIamPolicyResourcePolicyRequest",
        "GetIamPolicyServiceAttachmentRequest",
        "GetIamPolicySnapshotRequest",
        "GetIamPolicyStoragePoolRequest",
        "GetIamPolicySubnetworkRequest",
        "GetImageFamilyViewRequest",
        "GetImageRequest",
        "GetInstanceGroupManagerRequest",
        "GetInstanceGroupManagerResizeRequestRequest",
        "GetInstanceGroupRequest",
        "GetInstanceRequest",
        "GetInstanceSettingRequest",
        "GetInstanceTemplateRequest",
        "GetInstantSnapshotRequest",
        "GetInterconnectAttachmentGroupRequest",
        "GetInterconnectAttachmentRequest",
        "GetInterconnectGroupRequest",
        "GetInterconnectLocationRequest",
        "GetInterconnectRemoteLocationRequest",
        "GetInterconnectRequest",
        "GetLicenseCodeRequest",
        "GetLicenseRequest",
        "GetMachineImageRequest",
        "GetMachineTypeRequest",
        "GetMacsecConfigInterconnectRequest",
        "GetNatIpInfoRouterRequest",
        "GetNatMappingInfoRoutersRequest",
        "GetNetworkAttachmentRequest",
        "GetNetworkEdgeSecurityServiceRequest",
        "GetNetworkEndpointGroupRequest",
        "GetNetworkFirewallPolicyRequest",
        "GetNetworkProfileRequest",
        "GetNetworkRequest",
        "GetNodeGroupRequest",
        "GetNodeTemplateRequest",
        "GetNodeTypeRequest",
        "GetOperationalStatusInterconnectAttachmentGroupRequest",
        "GetOperationalStatusInterconnectGroupRequest",
        "GetOrganizationSecurityPolicyRequest",
        "GetPacketMirroringRequest",
        "GetPacketMirroringRuleFirewallPolicyRequest",
        "GetPacketMirroringRuleNetworkFirewallPolicyRequest",
        "GetPartnerMetadataInstanceRequest",
        "GetPreviewFeatureRequest",
        "GetProjectRequest",
        "GetPublicAdvertisedPrefixeRequest",
        "GetPublicDelegatedPrefixeRequest",
        "GetRegionAutoscalerRequest",
        "GetRegionBackendServiceRequest",
        "GetRegionCommitmentRequest",
        "GetRegionDiskRequest",
        "GetRegionDiskSettingRequest",
        "GetRegionDiskTypeRequest",
        "GetRegionHealthCheckRequest",
        "GetRegionHealthCheckServiceRequest",
        "GetRegionInstanceGroupManagerRequest",
        "GetRegionInstanceGroupManagerResizeRequestRequest",
        "GetRegionInstanceGroupRequest",
        "GetRegionInstanceTemplateRequest",
        "GetRegionInstantSnapshotRequest",
        "GetRegionMultiMigRequest",
        "GetRegionNetworkEndpointGroupRequest",
        "GetRegionNetworkFirewallPolicyRequest",
        "GetRegionNotificationEndpointRequest",
        "GetRegionOperationRequest",
        "GetRegionRequest",
        "GetRegionSecurityPolicyRequest",
        "GetRegionSnapshotRequest",
        "GetRegionSnapshotSettingRequest",
        "GetRegionSslCertificateRequest",
        "GetRegionSslPolicyRequest",
        "GetRegionTargetHttpProxyRequest",
        "GetRegionTargetHttpsProxyRequest",
        "GetRegionTargetTcpProxyRequest",
        "GetRegionUrlMapRequest",
        "GetReservationBlockRequest",
        "GetReservationRequest",
        "GetResourcePolicyRequest",
        "GetRoutePolicyRouterRequest",
        "GetRouteRequest",
        "GetRouterRequest",
        "GetRouterStatusRouterRequest",
        "GetRuleFirewallPolicyRequest",
        "GetRuleNetworkFirewallPolicyRequest",
        "GetRuleOrganizationSecurityPolicyRequest",
        "GetRuleRegionNetworkFirewallPolicyRequest",
        "GetRuleRegionSecurityPolicyRequest",
        "GetRuleSecurityPolicyRequest",
        "GetScreenshotInstanceRequest",
        "GetSecurityPolicyRequest",
        "GetSerialPortOutputInstanceRequest",
        "GetServiceAttachmentRequest",
        "GetShieldedInstanceIdentityInstanceRequest",
        "GetShieldedVmIdentityInstanceRequest",
        "GetSnapshotRequest",
        "GetSnapshotSettingRequest",
        "GetSslCertificateRequest",
        "GetSslPolicyRequest",
        "GetStatusVpnGatewayRequest",
        "GetStoragePoolRequest",
        "GetStoragePoolTypeRequest",
        "GetSubnetworkRequest",
        "GetTargetGrpcProxyRequest",
        "GetTargetHttpProxyRequest",
        "GetTargetHttpsProxyRequest",
        "GetTargetInstanceRequest",
        "GetTargetPoolRequest",
        "GetTargetSslProxyRequest",
        "GetTargetTcpProxyRequest",
        "GetTargetVpnGatewayRequest",
        "GetUrlMapRequest",
        "GetVpnGatewayRequest",
        "GetVpnTunnelRequest",
        "GetWireGroupRequest",
        "GetXpnHostProjectRequest",
        "GetXpnResourcesProjectsRequest",
        "GetZoneOperationRequest",
        "GetZoneRequest",
        "GlobalAddressesMoveRequest",
        "GlobalNetworkEndpointGroupsAttachEndpointsRequest",
        "GlobalNetworkEndpointGroupsDetachEndpointsRequest",
        "GlobalOrganizationSetPolicyRequest",
        "GlobalSetLabelsRequest",
        "GlobalSetPolicyRequest",
        "GroupMaintenanceInfo",
        "GuestAttributes",
        "GuestAttributesEntry",
        "GuestAttributesValue",
        "GuestOsFeature",
        "HTTP2HealthCheck",
        "HTTPHealthCheck",
        "HTTPSHealthCheck",
        "HealthCheck",
        "HealthCheckList",
        "HealthCheckLogConfig",
        "HealthCheckReference",
        "HealthCheckService",
        "HealthCheckServiceReference",
        "HealthCheckServicesList",
        "HealthChecksAggregatedList",
        "HealthChecksScopedList",
        "HealthStatus",
        "HealthStatusForNetworkEndpoint",
        "Help",
        "HelpLink",
        "HostRule",
        "HttpFaultAbort",
        "HttpFaultDelay",
        "HttpFaultInjection",
        "HttpFilterConfig",
        "HttpHeaderAction",
        "HttpHeaderMatch",
        "HttpHeaderOption",
        "HttpQueryParameterMatch",
        "HttpRedirectAction",
        "HttpRetryPolicy",
        "HttpRouteAction",
        "HttpRouteRule",
        "HttpRouteRuleMatch",
        "Image",
        "ImageFamilyView",
        "ImageList",
        "InitialStateConfig",
        "InsertAddressRequest",
        "InsertAutoscalerRequest",
        "InsertBackendBucketRequest",
        "InsertBackendServiceRequest",
        "InsertCrossSiteNetworkRequest",
        "InsertDiskRequest",
        "InsertExternalVpnGatewayRequest",
        "InsertFirewallPolicyRequest",
        "InsertFirewallRequest",
        "InsertForwardingRuleRequest",
        "InsertFutureReservationRequest",
        "InsertGlobalAddressRequest",
        "InsertGlobalForwardingRuleRequest",
        "InsertGlobalNetworkEndpointGroupRequest",
        "InsertGlobalPublicDelegatedPrefixeRequest",
        "InsertHealthCheckRequest",
        "InsertImageRequest",
        "InsertInstanceGroupManagerRequest",
        "InsertInstanceGroupManagerResizeRequestRequest",
        "InsertInstanceGroupRequest",
        "InsertInstanceRequest",
        "InsertInstanceTemplateRequest",
        "InsertInstantSnapshotRequest",
        "InsertInterconnectAttachmentGroupRequest",
        "InsertInterconnectAttachmentRequest",
        "InsertInterconnectGroupRequest",
        "InsertInterconnectRequest",
        "InsertLicenseRequest",
        "InsertMachineImageRequest",
        "InsertNetworkAttachmentRequest",
        "InsertNetworkEdgeSecurityServiceRequest",
        "InsertNetworkEndpointGroupRequest",
        "InsertNetworkFirewallPolicyRequest",
        "InsertNetworkRequest",
        "InsertNodeGroupRequest",
        "InsertNodeTemplateRequest",
        "InsertOrganizationSecurityPolicyRequest",
        "InsertPacketMirroringRequest",
        "InsertPublicAdvertisedPrefixeRequest",
        "InsertPublicDelegatedPrefixeRequest",
        "InsertRegionAutoscalerRequest",
        "InsertRegionBackendServiceRequest",
        "InsertRegionCommitmentRequest",
        "InsertRegionDiskRequest",
        "InsertRegionHealthCheckRequest",
        "InsertRegionHealthCheckServiceRequest",
        "InsertRegionInstanceGroupManagerRequest",
        "InsertRegionInstanceGroupManagerResizeRequestRequest",
        "InsertRegionInstanceTemplateRequest",
        "InsertRegionInstantSnapshotRequest",
        "InsertRegionMultiMigRequest",
        "InsertRegionNetworkEndpointGroupRequest",
        "InsertRegionNetworkFirewallPolicyRequest",
        "InsertRegionNotificationEndpointRequest",
        "InsertRegionSecurityPolicyRequest",
        "InsertRegionSnapshotRequest",
        "InsertRegionSslCertificateRequest",
        "InsertRegionSslPolicyRequest",
        "InsertRegionTargetHttpProxyRequest",
        "InsertRegionTargetHttpsProxyRequest",
        "InsertRegionTargetTcpProxyRequest",
        "InsertRegionUrlMapRequest",
        "InsertReservationRequest",
        "InsertResourcePolicyRequest",
        "InsertRouteRequest",
        "InsertRouterRequest",
        "InsertSecurityPolicyRequest",
        "InsertServiceAttachmentRequest",
        "InsertSnapshotRequest",
        "InsertSslCertificateRequest",
        "InsertSslPolicyRequest",
        "InsertStoragePoolRequest",
        "InsertSubnetworkRequest",
        "InsertTargetGrpcProxyRequest",
        "InsertTargetHttpProxyRequest",
        "InsertTargetHttpsProxyRequest",
        "InsertTargetInstanceRequest",
        "InsertTargetPoolRequest",
        "InsertTargetSslProxyRequest",
        "InsertTargetTcpProxyRequest",
        "InsertTargetVpnGatewayRequest",
        "InsertUrlMapRequest",
        "InsertVpnGatewayRequest",
        "InsertVpnTunnelRequest",
        "InsertWireGroupRequest",
        "Instance",
        "InstanceAggregatedList",
        "InstanceConsumptionData",
        "InstanceConsumptionInfo",
        "InstanceGroup",
        "InstanceGroupAggregatedList",
        "InstanceGroupList",
        "InstanceGroupManager",
        "InstanceGroupManagerActionsSummary",
        "InstanceGroupManagerAggregatedList",
        "InstanceGroupManagerAllInstancesConfig",
        "InstanceGroupManagerAutoHealingPolicy",
        "InstanceGroupManagerInstanceFlexibilityPolicy",
        "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection",
        "InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix",
        "InstanceGroupManagerInstanceLifecyclePolicy",
        "InstanceGroupManagerList",
        "InstanceGroupManagerParams",
        "InstanceGroupManagerResizeRequest",
        "InstanceGroupManagerResizeRequestStatus",
        "InstanceGroupManagerResizeRequestStatusLastAttempt",
        "InstanceGroupManagerResizeRequestsListResponse",
        "InstanceGroupManagerResourcePolicies",
        "InstanceGroupManagerStandbyPolicy",
        "InstanceGroupManagerStatus",
        "InstanceGroupManagerStatusAllInstancesConfig",
        "InstanceGroupManagerStatusBulkInstanceOperation",
        "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck",
        "InstanceGroupManagerStatusStateful",
        "InstanceGroupManagerStatusStatefulPerInstanceConfigs",
        "InstanceGroupManagerStatusVersionTarget",
        "InstanceGroupManagerTargetSizePolicy",
        "InstanceGroupManagerUpdatePolicy",
        "InstanceGroupManagerVersion",
        "InstanceGroupManagersAbandonInstancesRequest",
        "InstanceGroupManagersApplyUpdatesRequest",
        "InstanceGroupManagersCreateInstancesRequest",
        "InstanceGroupManagersDeleteInstancesRequest",
        "InstanceGroupManagersDeletePerInstanceConfigsReq",
        "InstanceGroupManagersListErrorsResponse",
        "InstanceGroupManagersListManagedInstancesResponse",
        "InstanceGroupManagersListPerInstanceConfigsResp",
        "InstanceGroupManagersPatchPerInstanceConfigsReq",
        "InstanceGroupManagersRecreateInstancesRequest",
        "InstanceGroupManagersResizeAdvancedRequest",
        "InstanceGroupManagersResumeInstancesRequest",
        "InstanceGroupManagersScopedList",
        "InstanceGroupManagersSetAutoHealingRequest",
        "InstanceGroupManagersSetInstanceTemplateRequest",
        "InstanceGroupManagersSetTargetPoolsRequest",
        "InstanceGroupManagersStartInstancesRequest",
        "InstanceGroupManagersStopInstancesRequest",
        "InstanceGroupManagersSuspendInstancesRequest",
        "InstanceGroupManagersUpdatePerInstanceConfigsReq",
        "InstanceGroupsAddInstancesRequest",
        "InstanceGroupsListInstances",
        "InstanceGroupsListInstancesRequest",
        "InstanceGroupsRemoveInstancesRequest",
        "InstanceGroupsScopedList",
        "InstanceGroupsSetNamedPortsRequest",
        "InstanceList",
        "InstanceListReferrers",
        "InstanceManagedByIgmError",
        "InstanceManagedByIgmErrorInstanceActionDetails",
        "InstanceManagedByIgmErrorManagedInstanceError",
        "InstanceMoveRequest",
        "InstanceParams",
        "InstanceProperties",
        "InstancePropertiesPatch",
        "InstanceReference",
        "InstanceSettings",
        "InstanceSettingsMetadata",
        "InstanceTemplate",
        "InstanceTemplateAggregatedList",
        "InstanceTemplateList",
        "InstanceTemplatesScopedList",
        "InstanceWithNamedPorts",
        "InstancesAddResourcePoliciesRequest",
        "InstancesBulkInsertOperationMetadata",
        "InstancesGetEffectiveFirewallsResponse",
        "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
        "InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy",
        "InstancesRemoveResourcePoliciesRequest",
        "InstancesReportHostAsFaultyRequest",
        "InstancesReportHostAsFaultyRequestFaultReason",
        "InstancesResumeRequest",
        "InstancesScopedList",
        "InstancesSetLabelsRequest",
        "InstancesSetMachineResourcesRequest",
        "InstancesSetMachineTypeRequest",
        "InstancesSetMinCpuPlatformRequest",
        "InstancesSetNameRequest",
        "InstancesSetSecurityPolicyRequest",
        "InstancesSetServiceAccountRequest",
        "InstancesStartWithEncryptionKeyRequest",
        "InstantSnapshot",
        "InstantSnapshotAggregatedList",
        "InstantSnapshotList",
        "InstantSnapshotResourceStatus",
        "InstantSnapshotsScopedList",
        "Int64RangeMatch",
        "Interconnect",
        "InterconnectApplicationAwareInterconnect",
        "InterconnectApplicationAwareInterconnectBandwidthPercentage",
        "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy",
        "InterconnectApplicationAwareInterconnectStrictPriorityPolicy",
        "InterconnectAttachment",
        "InterconnectAttachmentAggregatedList",
        "InterconnectAttachmentConfigurationConstraints",
        "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange",
        "InterconnectAttachmentGroup",
        "InterconnectAttachmentGroupAttachment",
        "InterconnectAttachmentGroupConfigured",
        "InterconnectAttachmentGroupConfiguredAvailabilitySLA",
        "InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers",
        "InterconnectAttachmentGroupIntent",
        "InterconnectAttachmentGroupLogicalStructure",
        "InterconnectAttachmentGroupLogicalStructureRegion",
        "InterconnectAttachmentGroupLogicalStructureRegionMetro",
        "InterconnectAttachmentGroupLogicalStructureRegionMetroFacility",
        "InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone",
        "InterconnectAttachmentGroupsGetOperationalStatusResponse",
        "InterconnectAttachmentGroupsListResponse",
        "InterconnectAttachmentGroupsOperationalStatus",
        "InterconnectAttachmentGroupsOperationalStatusAttachmentStatus",
        "InterconnectAttachmentList",
        "InterconnectAttachmentPartnerMetadata",
        "InterconnectAttachmentPrivateInfo",
        "InterconnectAttachmentsScopedList",
        "InterconnectCircuitInfo",
        "InterconnectDiagnostics",
        "InterconnectDiagnosticsARPEntry",
        "InterconnectDiagnosticsLinkLACPStatus",
        "InterconnectDiagnosticsLinkOpticalPower",
        "InterconnectDiagnosticsLinkStatus",
        "InterconnectDiagnosticsMacsecStatus",
        "InterconnectGroup",
        "InterconnectGroupConfigured",
        "InterconnectGroupConfiguredTopologyCapability",
        "InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers",
        "InterconnectGroupIntent",
        "InterconnectGroupInterconnect",
        "InterconnectGroupPhysicalStructure",
        "InterconnectGroupPhysicalStructureMetros",
        "InterconnectGroupPhysicalStructureMetrosFacilities",
        "InterconnectGroupPhysicalStructureMetrosFacilitiesZones",
        "InterconnectGroupsCreateMembers",
        "InterconnectGroupsCreateMembersInterconnectInput",
        "InterconnectGroupsCreateMembersRequest",
        "InterconnectGroupsGetOperationalStatusResponse",
        "InterconnectGroupsListResponse",
        "InterconnectGroupsOperationalStatus",
        "InterconnectGroupsOperationalStatusInterconnectStatus",
        "InterconnectList",
        "InterconnectLocation",
        "InterconnectLocationCrossSiteInterconnectInfo",
        "InterconnectLocationList",
        "InterconnectLocationRegionInfo",
        "InterconnectMacsec",
        "InterconnectMacsecConfig",
        "InterconnectMacsecConfigPreSharedKey",
        "InterconnectMacsecPreSharedKey",
        "InterconnectOutageNotification",
        "InterconnectRemoteLocation",
        "InterconnectRemoteLocationConstraints",
        "InterconnectRemoteLocationConstraintsSubnetLengthRange",
        "InterconnectRemoteLocationList",
        "InterconnectRemoteLocationPermittedConnections",
        "InterconnectsGetDiagnosticsResponse",
        "InterconnectsGetMacsecConfigResponse",
        "InvalidateCacheRegionUrlMapRequest",
        "InvalidateCacheUrlMapRequest",
        "Items",
        "License",
        "LicenseCode",
        "LicenseCodeLicenseAlias",
        "LicenseResourceCommitment",
        "LicenseResourceRequirements",
        "LicensesListResponse",
        "ListAcceleratorTypesRequest",
        "ListAddressesRequest",
        "ListAssociationsFirewallPolicyRequest",
        "ListAssociationsOrganizationSecurityPolicyRequest",
        "ListAutoscalersRequest",
        "ListAvailableFeaturesRegionSslPoliciesRequest",
        "ListAvailableFeaturesSslPoliciesRequest",
        "ListBackendBucketsRequest",
        "ListBackendServicesRequest",
        "ListBgpRoutesRoutersRequest",
        "ListCrossSiteNetworksRequest",
        "ListDiskTypesRequest",
        "ListDisksRequest",
        "ListDisksStoragePoolsRequest",
        "ListErrorsInstanceGroupManagersRequest",
        "ListErrorsRegionInstanceGroupManagersRequest",
        "ListExternalVpnGatewaysRequest",
        "ListFirewallPoliciesRequest",
        "ListFirewallsRequest",
        "ListForwardingRulesRequest",
        "ListFutureReservationsRequest",
        "ListGlobalAddressesRequest",
        "ListGlobalForwardingRulesRequest",
        "ListGlobalNetworkEndpointGroupsRequest",
        "ListGlobalOperationsRequest",
        "ListGlobalOrganizationOperationsRequest",
        "ListGlobalPublicDelegatedPrefixesRequest",
        "ListHealthChecksRequest",
        "ListImagesRequest",
        "ListInstanceGroupManagerResizeRequestsRequest",
        "ListInstanceGroupManagersRequest",
        "ListInstanceGroupsRequest",
        "ListInstanceTemplatesRequest",
        "ListInstancesInstanceGroupsRequest",
        "ListInstancesRegionInstanceGroupsRequest",
        "ListInstancesRequest",
        "ListInstantSnapshotsRequest",
        "ListInterconnectAttachmentGroupsRequest",
        "ListInterconnectAttachmentsRequest",
        "ListInterconnectGroupsRequest",
        "ListInterconnectLocationsRequest",
        "ListInterconnectRemoteLocationsRequest",
        "ListInterconnectsRequest",
        "ListLicensesRequest",
        "ListMachineImagesRequest",
        "ListMachineTypesRequest",
        "ListManagedInstancesInstanceGroupManagersRequest",
        "ListManagedInstancesRegionInstanceGroupManagersRequest",
        "ListNetworkAttachmentsRequest",
        "ListNetworkEndpointGroupsRequest",
        "ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest",
        "ListNetworkEndpointsNetworkEndpointGroupsRequest",
        "ListNetworkEndpointsRegionNetworkEndpointGroupsRequest",
        "ListNetworkFirewallPoliciesRequest",
        "ListNetworkProfilesRequest",
        "ListNetworksRequest",
        "ListNodeGroupsRequest",
        "ListNodeTemplatesRequest",
        "ListNodeTypesRequest",
        "ListNodesNodeGroupsRequest",
        "ListOrganizationSecurityPoliciesRequest",
        "ListPacketMirroringsRequest",
        "ListPeeringRoutesNetworksRequest",
        "ListPerInstanceConfigsInstanceGroupManagersRequest",
        "ListPerInstanceConfigsRegionInstanceGroupManagersRequest",
        "ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest",
        "ListPreconfiguredExpressionSetsSecurityPoliciesRequest",
        "ListPreviewFeaturesRequest",
        "ListPublicAdvertisedPrefixesRequest",
        "ListPublicDelegatedPrefixesRequest",
        "ListReferrersInstancesRequest",
        "ListRegionAutoscalersRequest",
        "ListRegionBackendServicesRequest",
        "ListRegionCommitmentsRequest",
        "ListRegionDiskTypesRequest",
        "ListRegionDisksRequest",
        "ListRegionHealthCheckServicesRequest",
        "ListRegionHealthChecksRequest",
        "ListRegionInstanceGroupManagerResizeRequestsRequest",
        "ListRegionInstanceGroupManagersRequest",
        "ListRegionInstanceGroupsRequest",
        "ListRegionInstanceTemplatesRequest",
        "ListRegionInstantSnapshotsRequest",
        "ListRegionMultiMigsRequest",
        "ListRegionNetworkEndpointGroupsRequest",
        "ListRegionNetworkFirewallPoliciesRequest",
        "ListRegionNotificationEndpointsRequest",
        "ListRegionOperationsRequest",
        "ListRegionSecurityPoliciesRequest",
        "ListRegionSnapshotsRequest",
        "ListRegionSslCertificatesRequest",
        "ListRegionSslPoliciesRequest",
        "ListRegionTargetHttpProxiesRequest",
        "ListRegionTargetHttpsProxiesRequest",
        "ListRegionTargetTcpProxiesRequest",
        "ListRegionUrlMapsRequest",
        "ListRegionZonesRequest",
        "ListRegionsRequest",
        "ListReservationBlocksRequest",
        "ListReservationsRequest",
        "ListResourcePoliciesRequest",
        "ListRoutePoliciesRoutersRequest",
        "ListRoutersRequest",
        "ListRoutesRequest",
        "ListSecurityPoliciesRequest",
        "ListServiceAttachmentsRequest",
        "ListSnapshotsRequest",
        "ListSslCertificatesRequest",
        "ListSslPoliciesRequest",
        "ListStoragePoolTypesRequest",
        "ListStoragePoolsRequest",
        "ListSubnetworksRequest",
        "ListTargetGrpcProxiesRequest",
        "ListTargetHttpProxiesRequest",
        "ListTargetHttpsProxiesRequest",
        "ListTargetInstancesRequest",
        "ListTargetPoolsRequest",
        "ListTargetSslProxiesRequest",
        "ListTargetTcpProxiesRequest",
        "ListTargetVpnGatewaysRequest",
        "ListUrlMapsRequest",
        "ListUsableBackendBucketsRequest",
        "ListUsableBackendServicesRequest",
        "ListUsableRegionBackendServicesRequest",
        "ListUsableSubnetworksRequest",
        "ListVpnGatewaysRequest",
        "ListVpnTunnelsRequest",
        "ListWireGroupsRequest",
        "ListXpnHostsProjectsRequest",
        "ListZoneOperationsRequest",
        "ListZonesRequest",
        "LocalDisk",
        "LocalizedMessage",
        "LocationPolicy",
        "LocationPolicyLocation",
        "LocationPolicyLocationConstraints",
        "MachineImage",
        "MachineImageList",
        "MachineType",
        "MachineTypeAggregatedList",
        "MachineTypeList",
        "MachineTypesScopedList",
        "ManagedInstance",
        "ManagedInstanceAllInstancesConfig",
        "ManagedInstanceInstanceHealth",
        "ManagedInstanceLastAttempt",
        "ManagedInstanceLastAttemptErrors",
        "ManagedInstancePropertiesFromFlexibilityPolicy",
        "ManagedInstanceVersion",
        "Metadata",
        "MetadataFilter",
        "MetadataFilterLabelMatch",
        "MoveAddressRequest",
        "MoveDiskProjectRequest",
        "MoveFirewallPolicyRequest",
        "MoveGlobalAddressRequest",
        "MoveInstanceProjectRequest",
        "MoveOrganizationSecurityPolicyRequest",
        "MultiMig",
        "MultiMigResourcePolicies",
        "MultiMigsList",
        "NamedPort",
        "NatIpInfo",
        "NatIpInfoNatIpInfoMapping",
        "NatIpInfoResponse",
        "Network",
        "NetworkAttachment",
        "NetworkAttachmentAggregatedList",
        "NetworkAttachmentConnectedEndpoint",
        "NetworkAttachmentList",
        "NetworkAttachmentsScopedList",
        "NetworkEdgeSecurityService",
        "NetworkEdgeSecurityServiceAggregatedList",
        "NetworkEdgeSecurityServicesScopedList",
        "NetworkEndpoint",
        "NetworkEndpointGroup",
        "NetworkEndpointGroupAggregatedList",
        "NetworkEndpointGroupAppEngine",
        "NetworkEndpointGroupCloudFunction",
        "NetworkEndpointGroupCloudRun",
        "NetworkEndpointGroupLbNetworkEndpointGroup",
        "NetworkEndpointGroupList",
        "NetworkEndpointGroupPscData",
        "NetworkEndpointGroupServerlessDeployment",
        "NetworkEndpointGroupsAttachEndpointsRequest",
        "NetworkEndpointGroupsDetachEndpointsRequest",
        "NetworkEndpointGroupsListEndpointsRequest",
        "NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter",
        "NetworkEndpointGroupsListNetworkEndpoints",
        "NetworkEndpointGroupsScopedList",
        "NetworkEndpointWithHealthStatus",
        "NetworkFirewallPolicyAggregatedList",
        "NetworkInterface",
        "NetworkList",
        "NetworkParams",
        "NetworkPeering",
        "NetworkPeeringConnectionStatus",
        "NetworkPeeringConnectionStatusConsensusState",
        "NetworkPeeringConnectionStatusTrafficConfiguration",
        "NetworkPerformanceConfig",
        "NetworkProfile",
        "NetworkProfileLocation",
        "NetworkProfileNetworkFeatures",
        "NetworkProfilesListResponse",
        "NetworkRoutingConfig",
        "NetworksAddPeeringRequest",
        "NetworksGetEffectiveFirewallsResponse",
        "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
        "NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy",
        "NetworksRemovePeeringRequest",
        "NetworksRequestRemovePeeringRequest",
        "NetworksUpdatePeeringRequest",
        "NodeGroup",
        "NodeGroupAggregatedList",
        "NodeGroupAutoscalingPolicy",
        "NodeGroupList",
        "NodeGroupMaintenanceWindow",
        "NodeGroupNode",
        "NodeGroupsAddNodesRequest",
        "NodeGroupsDeleteNodesRequest",
        "NodeGroupsListNodes",
        "NodeGroupsPerformMaintenanceRequest",
        "NodeGroupsScopedList",
        "NodeGroupsSetNodeTemplateRequest",
        "NodeGroupsSimulateMaintenanceEventRequest",
        "NodeTemplate",
        "NodeTemplateAggregatedList",
        "NodeTemplateList",
        "NodeTemplateNodeTypeFlexibility",
        "NodeTemplatesScopedList",
        "NodeType",
        "NodeTypeAggregatedList",
        "NodeTypeList",
        "NodeTypesScopedList",
        "NotificationEndpoint",
        "NotificationEndpointGrpcSettings",
        "NotificationEndpointList",
        "Operation",
        "OperationAggregatedList",
        "OperationList",
        "OperationsScopedList",
        "OrganizationSecurityPoliciesListAssociationsResponse",
        "OutlierDetection",
        "PacketIntervals",
        "PacketMirroring",
        "PacketMirroringAggregatedList",
        "PacketMirroringFilter",
        "PacketMirroringForwardingRuleInfo",
        "PacketMirroringList",
        "PacketMirroringMirroredResourceInfo",
        "PacketMirroringMirroredResourceInfoInstanceInfo",
        "PacketMirroringMirroredResourceInfoSubnetInfo",
        "PacketMirroringNetworkInfo",
        "PacketMirroringsScopedList",
        "PartnerMetadata",
        "PatchAssociationRegionNetworkFirewallPolicyRequest",
        "PatchAutoscalerRequest",
        "PatchBackendBucketRequest",
        "PatchBackendServiceRequest",
        "PatchCrossSiteNetworkRequest",
        "PatchDiskSettingRequest",
        "PatchFirewallPolicyRequest",
        "PatchFirewallRequest",
        "PatchForwardingRuleRequest",
        "PatchGlobalForwardingRuleRequest",
        "PatchGlobalPublicDelegatedPrefixeRequest",
        "PatchHealthCheckRequest",
        "PatchImageRequest",
        "PatchInstanceGroupManagerRequest",
        "PatchInstanceSettingRequest",
        "PatchInterconnectAttachmentGroupRequest",
        "PatchInterconnectAttachmentRequest",
        "PatchInterconnectGroupRequest",
        "PatchInterconnectRequest",
        "PatchNetworkAttachmentRequest",
        "PatchNetworkEdgeSecurityServiceRequest",
        "PatchNetworkFirewallPolicyRequest",
        "PatchNetworkRequest",
        "PatchNodeGroupRequest",
        "PatchOrganizationSecurityPolicyRequest",
        "PatchPacketMirroringRequest",
        "PatchPacketMirroringRuleFirewallPolicyRequest",
        "PatchPacketMirroringRuleNetworkFirewallPolicyRequest",
        "PatchPartnerMetadataInstanceRequest",
        "PatchPerInstanceConfigsInstanceGroupManagerRequest",
        "PatchPerInstanceConfigsRegionInstanceGroupManagerRequest",
        "PatchPublicAdvertisedPrefixeRequest",
        "PatchPublicDelegatedPrefixeRequest",
        "PatchRegionAutoscalerRequest",
        "PatchRegionBackendServiceRequest",
        "PatchRegionDiskSettingRequest",
        "PatchRegionHealthCheckRequest",
        "PatchRegionHealthCheckServiceRequest",
        "PatchRegionInstanceGroupManagerRequest",
        "PatchRegionNetworkFirewallPolicyRequest",
        "PatchRegionSecurityPolicyRequest",
        "PatchRegionSnapshotSettingRequest",
        "PatchRegionSslPolicyRequest",
        "PatchRegionTargetHttpsProxyRequest",
        "PatchRegionUrlMapRequest",
        "PatchResourcePolicyRequest",
        "PatchRoutePolicyRouterRequest",
        "PatchRouterRequest",
        "PatchRuleFirewallPolicyRequest",
        "PatchRuleNetworkFirewallPolicyRequest",
        "PatchRuleOrganizationSecurityPolicyRequest",
        "PatchRuleRegionNetworkFirewallPolicyRequest",
        "PatchRuleRegionSecurityPolicyRequest",
        "PatchRuleSecurityPolicyRequest",
        "PatchSecurityPolicyRequest",
        "PatchServiceAttachmentRequest",
        "PatchSnapshotSettingRequest",
        "PatchSslPolicyRequest",
        "PatchSubnetworkRequest",
        "PatchTargetGrpcProxyRequest",
        "PatchTargetHttpProxyRequest",
        "PatchTargetHttpsProxyRequest",
        "PatchUrlMapRequest",
        "PatchWireGroupRequest",
        "PathMatcher",
        "PathRule",
        "PerInstanceConfig",
        "PerformMaintenanceInstanceRequest",
        "PerformMaintenanceNodeGroupRequest",
        "PerformMaintenanceReservationBlockRequest",
        "PerformMaintenanceReservationRequest",
        "Policy",
        "PreconfiguredWafSet",
        "PreservedState",
        "PreservedStatePreservedDisk",
        "PreservedStatePreservedNetworkIp",
        "PreservedStatePreservedNetworkIpIpAddress",
        "PreviewFeature",
        "PreviewFeatureList",
        "PreviewFeatureRolloutOperation",
        "PreviewFeatureRolloutOperationRolloutInput",
        "PreviewFeatureRolloutOperationRolloutStatus",
        "PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata",
        "PreviewFeatureStatus",
        "PreviewFeatureStatusReleaseStatus",
        "PreviewRouterRequest",
        "Project",
        "ProjectsDisableXpnResourceRequest",
        "ProjectsEnableXpnResourceRequest",
        "ProjectsGetXpnResources",
        "ProjectsListXpnHostsRequest",
        "ProjectsSetCloudArmorTierRequest",
        "ProjectsSetDefaultNetworkTierRequest",
        "ProjectsSetManagedProtectionTierRequest",
        "PublicAdvertisedPrefix",
        "PublicAdvertisedPrefixList",
        "PublicAdvertisedPrefixPublicDelegatedPrefix",
        "PublicDelegatedPrefix",
        "PublicDelegatedPrefixAggregatedList",
        "PublicDelegatedPrefixList",
        "PublicDelegatedPrefixPublicDelegatedSubPrefix",
        "PublicDelegatedPrefixesScopedList",
        "Quota",
        "QuotaExceededInfo",
        "QuotaStatusWarning",
        "RawDisk",
        "RecreateInstancesInstanceGroupManagerRequest",
        "RecreateInstancesRegionInstanceGroupManagerRequest",
        "Reference",
        "Region",
        "RegionAddressesMoveRequest",
        "RegionAutoscalerList",
        "RegionCommitmentsUpdateReservationsRequest",
        "RegionDiskTypeList",
        "RegionDisksAddResourcePoliciesRequest",
        "RegionDisksRemoveResourcePoliciesRequest",
        "RegionDisksResizeRequest",
        "RegionDisksStartAsyncReplicationRequest",
        "RegionInstanceGroupList",
        "RegionInstanceGroupManagerDeleteInstanceConfigReq",
        "RegionInstanceGroupManagerList",
        "RegionInstanceGroupManagerPatchInstanceConfigReq",
        "RegionInstanceGroupManagerResizeRequestsListResponse",
        "RegionInstanceGroupManagerUpdateInstanceConfigReq",
        "RegionInstanceGroupManagersAbandonInstancesRequest",
        "RegionInstanceGroupManagersApplyUpdatesRequest",
        "RegionInstanceGroupManagersCreateInstancesRequest",
        "RegionInstanceGroupManagersDeleteInstancesRequest",
        "RegionInstanceGroupManagersListErrorsResponse",
        "RegionInstanceGroupManagersListInstanceConfigsResp",
        "RegionInstanceGroupManagersListInstancesResponse",
        "RegionInstanceGroupManagersRecreateRequest",
        "RegionInstanceGroupManagersResizeAdvancedRequest",
        "RegionInstanceGroupManagersResumeInstancesRequest",
        "RegionInstanceGroupManagersSetAutoHealingRequest",
        "RegionInstanceGroupManagersSetTargetPoolsRequest",
        "RegionInstanceGroupManagersSetTemplateRequest",
        "RegionInstanceGroupManagersStartInstancesRequest",
        "RegionInstanceGroupManagersStopInstancesRequest",
        "RegionInstanceGroupManagersSuspendInstancesRequest",
        "RegionInstanceGroupsListInstances",
        "RegionInstanceGroupsListInstancesRequest",
        "RegionInstanceGroupsSetNamedPortsRequest",
        "RegionList",
        "RegionNetworkEndpointGroupsAttachEndpointsRequest",
        "RegionNetworkEndpointGroupsDetachEndpointsRequest",
        "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse",
        "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
        "RegionSetLabelsRequest",
        "RegionSetPolicyRequest",
        "RegionTargetHttpsProxiesSetSslCertificatesRequest",
        "RegionUrlMapsValidateRequest",
        "RemoveAssociationFirewallPolicyRequest",
        "RemoveAssociationNetworkFirewallPolicyRequest",
        "RemoveAssociationOrganizationSecurityPolicyRequest",
        "RemoveAssociationRegionNetworkFirewallPolicyRequest",
        "RemoveHealthCheckTargetPoolRequest",
        "RemoveInstanceTargetPoolRequest",
        "RemoveInstancesInstanceGroupRequest",
        "RemovePacketMirroringRuleFirewallPolicyRequest",
        "RemovePacketMirroringRuleNetworkFirewallPolicyRequest",
        "RemovePeeringNetworkRequest",
        "RemoveResourcePoliciesDiskRequest",
        "RemoveResourcePoliciesInstanceRequest",
        "RemoveResourcePoliciesRegionDiskRequest",
        "RemoveRuleFirewallPolicyRequest",
        "RemoveRuleNetworkFirewallPolicyRequest",
        "RemoveRuleOrganizationSecurityPolicyRequest",
        "RemoveRuleRegionNetworkFirewallPolicyRequest",
        "RemoveRuleRegionSecurityPolicyRequest",
        "RemoveRuleSecurityPolicyRequest",
        "ReportHostAsFaultyInstanceRequest",
        "RequestMirrorPolicy",
        "RequestRemovePeeringNetworkRequest",
        "Reservation",
        "ReservationAffinity",
        "ReservationAggregatedList",
        "ReservationBlock",
        "ReservationBlockPhysicalTopology",
        "ReservationBlocksGetResponse",
        "ReservationBlocksListResponse",
        "ReservationList",
        "ReservationsBlocksPerformMaintenanceRequest",
        "ReservationsPerformMaintenanceRequest",
        "ReservationsResizeRequest",
        "ReservationsScopedList",
        "ResetInstanceRequest",
        "ResizeAdvancedInstanceGroupManagerRequest",
        "ResizeAdvancedRegionInstanceGroupManagerRequest",
        "ResizeDiskRequest",
        "ResizeInstanceGroupManagerRequest",
        "ResizeRegionDiskRequest",
        "ResizeRegionInstanceGroupManagerRequest",
        "ResizeReservationRequest",
        "ResourceCommitment",
        "ResourceGroupReference",
        "ResourcePoliciesScopedList",
        "ResourcePolicy",
        "ResourcePolicyAggregatedList",
        "ResourcePolicyDailyCycle",
        "ResourcePolicyDiskConsistencyGroupPolicy",
        "ResourcePolicyGroupPlacementPolicy",
        "ResourcePolicyHourlyCycle",
        "ResourcePolicyInstanceSchedulePolicy",
        "ResourcePolicyInstanceSchedulePolicySchedule",
        "ResourcePolicyList",
        "ResourcePolicyResourceStatus",
        "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus",
        "ResourcePolicySnapshotSchedulePolicy",
        "ResourcePolicySnapshotSchedulePolicyRetentionPolicy",
        "ResourcePolicySnapshotSchedulePolicySchedule",
        "ResourcePolicySnapshotSchedulePolicySnapshotProperties",
        "ResourcePolicyWeeklyCycle",
        "ResourcePolicyWeeklyCycleDayOfWeek",
        "ResourcePolicyWorkloadPolicy",
        "ResourceStatus",
        "ResourceStatusPhysicalHostTopology",
        "ResourceStatusScheduling",
        "ResourceStatusShutdownDetails",
        "ResumeInstanceRequest",
        "ResumeInstancesInstanceGroupManagerRequest",
        "ResumeInstancesRegionInstanceGroupManagerRequest",
        "RolloutPolicy",
        "Route",
        "RouteAsPath",
        "RouteList",
        "RouteParams",
        "RoutePolicy",
        "RoutePolicyPolicyTerm",
        "Router",
        "RouterAdvertisedIpRange",
        "RouterAggregatedList",
        "RouterBgp",
        "RouterBgpPeer",
        "RouterBgpPeerBfd",
        "RouterBgpPeerCustomLearnedIpRange",
        "RouterInterface",
        "RouterList",
        "RouterMd5AuthenticationKey",
        "RouterNat",
        "RouterNatLogConfig",
        "RouterNatRule",
        "RouterNatRuleAction",
        "RouterNatSubnetworkToNat",
        "RouterNatSubnetworkToNat64",
        "RouterStatus",
        "RouterStatusBgpPeerStatus",
        "RouterStatusNatStatus",
        "RouterStatusNatStatusNatRuleStatus",
        "RouterStatusResponse",
        "RoutersGetRoutePolicyResponse",
        "RoutersListBgpRoutes",
        "RoutersListRoutePolicies",
        "RoutersPreviewResponse",
        "RoutersScopedList",
        "SSLHealthCheck",
        "SavedAttachedDisk",
        "SavedDisk",
        "ScalingScheduleStatus",
        "Scheduling",
        "SchedulingGracefulShutdown",
        "SchedulingNodeAffinity",
        "SchedulingOnInstanceStopAction",
        "Screenshot",
        "SecurityPoliciesAggregatedList",
        "SecurityPoliciesListPreconfiguredExpressionSetsResponse",
        "SecurityPoliciesScopedList",
        "SecurityPoliciesWafConfig",
        "SecurityPolicy",
        "SecurityPolicyAdaptiveProtectionConfig",
        "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig",
        "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig",
        "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig",
        "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig",
        "SecurityPolicyAdvancedOptionsConfig",
        "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig",
        "SecurityPolicyAssociation",
        "SecurityPolicyDdosProtectionConfig",
        "SecurityPolicyList",
        "SecurityPolicyRecaptchaOptionsConfig",
        "SecurityPolicyReference",
        "SecurityPolicyRule",
        "SecurityPolicyRuleHttpHeaderAction",
        "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption",
        "SecurityPolicyRuleMatcher",
        "SecurityPolicyRuleMatcherConfig",
        "SecurityPolicyRuleMatcherConfigLayer4Config",
        "SecurityPolicyRuleMatcherExprOptions",
        "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions",
        "SecurityPolicyRuleNetworkMatcher",
        "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch",
        "SecurityPolicyRulePreconfiguredWafConfig",
        "SecurityPolicyRulePreconfiguredWafConfigExclusion",
        "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams",
        "SecurityPolicyRuleRateLimitOptions",
        "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig",
        "SecurityPolicyRuleRateLimitOptionsThreshold",
        "SecurityPolicyRuleRedirectOptions",
        "SecurityPolicyUserDefinedField",
        "SecuritySettings",
        "SendDiagnosticInterruptInstanceRequest",
        "SendDiagnosticInterruptInstanceResponse",
        "SerialPortOutput",
        "ServerBinding",
        "ServiceAccount",
        "ServiceAttachment",
        "ServiceAttachmentAggregatedList",
        "ServiceAttachmentConnectedEndpoint",
        "ServiceAttachmentConsumerProjectLimit",
        "ServiceAttachmentList",
        "ServiceAttachmentTunnelingConfig",
        "ServiceAttachmentsScopedList",
        "SetAutoHealingPoliciesInstanceGroupManagerRequest",
        "SetAutoHealingPoliciesRegionInstanceGroupManagerRequest",
        "SetBackendServiceTargetSslProxyRequest",
        "SetBackendServiceTargetTcpProxyRequest",
        "SetBackupTargetPoolRequest",
        "SetCertificateMapTargetHttpsProxyRequest",
        "SetCertificateMapTargetSslProxyRequest",
        "SetCloudArmorTierProjectRequest",
        "SetCommonInstanceMetadataOperationMetadata",
        "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo",
        "SetCommonInstanceMetadataProjectRequest",
        "SetDefaultNetworkTierProjectRequest",
        "SetDeletionProtectionInstanceRequest",
        "SetDiskAutoDeleteInstanceRequest",
        "SetEdgeSecurityPolicyBackendBucketRequest",
        "SetEdgeSecurityPolicyBackendServiceRequest",
        "SetIamPolicyBackendBucketRequest",
        "SetIamPolicyBackendServiceRequest",
        "SetIamPolicyDiskRequest",
        "SetIamPolicyFirewallPolicyRequest",
        "SetIamPolicyImageRequest",
        "SetIamPolicyInstanceRequest",
        "SetIamPolicyInstanceTemplateRequest",
        "SetIamPolicyInstantSnapshotRequest",
        "SetIamPolicyInterconnectAttachmentGroupRequest",
        "SetIamPolicyInterconnectGroupRequest",
        "SetIamPolicyLicenseRequest",
        "SetIamPolicyMachineImageRequest",
        "SetIamPolicyNetworkAttachmentRequest",
        "SetIamPolicyNetworkFirewallPolicyRequest",
        "SetIamPolicyNodeGroupRequest",
        "SetIamPolicyNodeTemplateRequest",
        "SetIamPolicyRegionBackendServiceRequest",
        "SetIamPolicyRegionDiskRequest",
        "SetIamPolicyRegionInstantSnapshotRequest",
        "SetIamPolicyRegionNetworkFirewallPolicyRequest",
        "SetIamPolicyRegionSnapshotRequest",
        "SetIamPolicyReservationRequest",
        "SetIamPolicyResourcePolicyRequest",
        "SetIamPolicyServiceAttachmentRequest",
        "SetIamPolicySnapshotRequest",
        "SetIamPolicyStoragePoolRequest",
        "SetIamPolicySubnetworkRequest",
        "SetInstanceTemplateInstanceGroupManagerRequest",
        "SetInstanceTemplateRegionInstanceGroupManagerRequest",
        "SetLabelsAddressRequest",
        "SetLabelsDiskRequest",
        "SetLabelsExternalVpnGatewayRequest",
        "SetLabelsForwardingRuleRequest",
        "SetLabelsGlobalAddressRequest",
        "SetLabelsGlobalForwardingRuleRequest",
        "SetLabelsImageRequest",
        "SetLabelsInstanceRequest",
        "SetLabelsInstantSnapshotRequest",
        "SetLabelsInterconnectAttachmentRequest",
        "SetLabelsInterconnectRequest",
        "SetLabelsMachineImageRequest",
        "SetLabelsRegionDiskRequest",
        "SetLabelsRegionInstantSnapshotRequest",
        "SetLabelsRegionSecurityPolicyRequest",
        "SetLabelsRegionSnapshotRequest",
        "SetLabelsSecurityPolicyRequest",
        "SetLabelsSnapshotRequest",
        "SetLabelsTargetVpnGatewayRequest",
        "SetLabelsVpnGatewayRequest",
        "SetLabelsVpnTunnelRequest",
        "SetMachineResourcesInstanceRequest",
        "SetMachineTypeInstanceRequest",
        "SetManagedProtectionTierProjectRequest",
        "SetMetadataInstanceRequest",
        "SetMinCpuPlatformInstanceRequest",
        "SetNameInstanceRequest",
        "SetNamedPortsInstanceGroupRequest",
        "SetNamedPortsRegionInstanceGroupRequest",
        "SetNodeTemplateNodeGroupRequest",
        "SetPrivateIpGoogleAccessSubnetworkRequest",
        "SetProxyHeaderTargetSslProxyRequest",
        "SetProxyHeaderTargetTcpProxyRequest",
        "SetQuicOverrideTargetHttpsProxyRequest",
        "SetSchedulingInstanceRequest",
        "SetSecurityPolicyBackendServiceRequest",
        "SetSecurityPolicyInstanceRequest",
        "SetSecurityPolicyRegionBackendServiceRequest",
        "SetSecurityPolicyTargetInstanceRequest",
        "SetSecurityPolicyTargetPoolRequest",
        "SetServiceAccountInstanceRequest",
        "SetShieldedInstanceIntegrityPolicyInstanceRequest",
        "SetShieldedVmIntegrityPolicyInstanceRequest",
        "SetSslCertificatesRegionTargetHttpsProxyRequest",
        "SetSslCertificatesTargetHttpsProxyRequest",
        "SetSslCertificatesTargetSslProxyRequest",
        "SetSslPolicyTargetHttpsProxyRequest",
        "SetSslPolicyTargetSslProxyRequest",
        "SetTagsInstanceRequest",
        "SetTargetForwardingRuleRequest",
        "SetTargetGlobalForwardingRuleRequest",
        "SetTargetPoolsInstanceGroupManagerRequest",
        "SetTargetPoolsRegionInstanceGroupManagerRequest",
        "SetUrlMapRegionTargetHttpProxyRequest",
        "SetUrlMapRegionTargetHttpsProxyRequest",
        "SetUrlMapTargetHttpProxyRequest",
        "SetUrlMapTargetHttpsProxyRequest",
        "SetUsageExportBucketProjectRequest",
        "ShareSettings",
        "ShareSettingsProjectConfig",
        "ShieldedInstanceConfig",
        "ShieldedInstanceIdentity",
        "ShieldedInstanceIdentityEntry",
        "ShieldedInstanceIntegrityPolicy",
        "ShieldedVmConfig",
        "ShieldedVmIdentity",
        "ShieldedVmIdentityEntry",
        "ShieldedVmIntegrityPolicy",
        "SignedUrlKey",
        "SimulateMaintenanceEventInstanceRequest",
        "SimulateMaintenanceEventNodeGroupRequest",
        "Snapshot",
        "SnapshotAggregatedList",
        "SnapshotList",
        "SnapshotSettings",
        "SnapshotSettingsAccessLocation",
        "SnapshotSettingsAccessLocationAccessLocationPreference",
        "SnapshotSettingsStorageLocationSettings",
        "SnapshotSettingsStorageLocationSettingsStorageLocationPreference",
        "SnapshotsScopedList",
        "SourceDiskEncryptionKey",
        "SourceInstanceParams",
        "SourceInstanceProperties",
        "SslCertificate",
        "SslCertificateAggregatedList",
        "SslCertificateList",
        "SslCertificateManagedSslCertificate",
        "SslCertificateSelfManagedSslCertificate",
        "SslCertificatesScopedList",
        "SslPoliciesAggregatedList",
        "SslPoliciesList",
        "SslPoliciesListAvailableFeaturesResponse",
        "SslPoliciesScopedList",
        "SslPolicy",
        "SslPolicyReference",
        "StartAsyncReplicationDiskRequest",
        "StartAsyncReplicationRegionDiskRequest",
        "StartInstanceRequest",
        "StartInstancesInstanceGroupManagerRequest",
        "StartInstancesRegionInstanceGroupManagerRequest",
        "StartWithEncryptionKeyInstanceRequest",
        "StatefulPolicy",
        "StatefulPolicyPreservedState",
        "StatefulPolicyPreservedStateDiskDevice",
        "StatefulPolicyPreservedStateNetworkIp",
        "Status",
        "StopAsyncReplicationDiskRequest",
        "StopAsyncReplicationRegionDiskRequest",
        "StopGroupAsyncReplicationDiskRequest",
        "StopGroupAsyncReplicationRegionDiskRequest",
        "StopInstanceRequest",
        "StopInstancesInstanceGroupManagerRequest",
        "StopInstancesRegionInstanceGroupManagerRequest",
        "StoragePool",
        "StoragePoolAggregatedList",
        "StoragePoolDisk",
        "StoragePoolList",
        "StoragePoolListDisks",
        "StoragePoolResourceStatus",
        "StoragePoolType",
        "StoragePoolTypeAggregatedList",
        "StoragePoolTypeList",
        "StoragePoolTypesScopedList",
        "StoragePoolsScopedList",
        "StructuredEntries",
        "Subnetwork",
        "SubnetworkAggregatedList",
        "SubnetworkList",
        "SubnetworkLogConfig",
        "SubnetworkParams",
        "SubnetworkSecondaryRange",
        "SubnetworksExpandIpCidrRangeRequest",
        "SubnetworksScopedList",
        "SubnetworksScopedWarning",
        "SubnetworksSetPrivateIpGoogleAccessRequest",
        "Subsetting",
        "SuspendInstanceRequest",
        "SuspendInstancesInstanceGroupManagerRequest",
        "SuspendInstancesRegionInstanceGroupManagerRequest",
        "SwitchToCustomModeNetworkRequest",
        "TCPHealthCheck",
        "Tags",
        "TargetGrpcProxy",
        "TargetGrpcProxyList",
        "TargetHttpProxiesScopedList",
        "TargetHttpProxy",
        "TargetHttpProxyAggregatedList",
        "TargetHttpProxyList",
        "TargetHttpsProxiesScopedList",
        "TargetHttpsProxiesSetCertificateMapRequest",
        "TargetHttpsProxiesSetQuicOverrideRequest",
        "TargetHttpsProxiesSetSslCertificatesRequest",
        "TargetHttpsProxy",
        "TargetHttpsProxyAggregatedList",
        "TargetHttpsProxyList",
        "TargetInstance",
        "TargetInstanceAggregatedList",
        "TargetInstanceList",
        "TargetInstancesScopedList",
        "TargetPool",
        "TargetPoolAggregatedList",
        "TargetPoolInstanceHealth",
        "TargetPoolList",
        "TargetPoolsAddHealthCheckRequest",
        "TargetPoolsAddInstanceRequest",
        "TargetPoolsRemoveHealthCheckRequest",
        "TargetPoolsRemoveInstanceRequest",
        "TargetPoolsScopedList",
        "TargetReference",
        "TargetSslProxiesSetBackendServiceRequest",
        "TargetSslProxiesSetCertificateMapRequest",
        "TargetSslProxiesSetProxyHeaderRequest",
        "TargetSslProxiesSetSslCertificatesRequest",
        "TargetSslProxy",
        "TargetSslProxyList",
        "TargetTcpProxiesScopedList",
        "TargetTcpProxiesSetBackendServiceRequest",
        "TargetTcpProxiesSetProxyHeaderRequest",
        "TargetTcpProxy",
        "TargetTcpProxyAggregatedList",
        "TargetTcpProxyList",
        "TargetVpnGateway",
        "TargetVpnGatewayAggregatedList",
        "TargetVpnGatewayList",
        "TargetVpnGatewaysScopedList",
        "TestFailure",
        "TestIamPermissionsAddressRequest",
        "TestIamPermissionsAutoscalerRequest",
        "TestIamPermissionsBackendBucketRequest",
        "TestIamPermissionsBackendServiceRequest",
        "TestIamPermissionsDiskRequest",
        "TestIamPermissionsExternalVpnGatewayRequest",
        "TestIamPermissionsFirewallPolicyRequest",
        "TestIamPermissionsFirewallRequest",
        "TestIamPermissionsForwardingRuleRequest",
        "TestIamPermissionsGlobalAddressRequest",
        "TestIamPermissionsGlobalForwardingRuleRequest",
        "TestIamPermissionsHealthCheckRequest",
        "TestIamPermissionsImageRequest",
        "TestIamPermissionsInstanceGroupManagerRequest",
        "TestIamPermissionsInstanceGroupRequest",
        "TestIamPermissionsInstanceRequest",
        "TestIamPermissionsInstanceTemplateRequest",
        "TestIamPermissionsInstantSnapshotRequest",
        "TestIamPermissionsInterconnectAttachmentGroupRequest",
        "TestIamPermissionsInterconnectAttachmentRequest",
        "TestIamPermissionsInterconnectGroupRequest",
        "TestIamPermissionsInterconnectRequest",
        "TestIamPermissionsLicenseCodeRequest",
        "TestIamPermissionsLicenseRequest",
        "TestIamPermissionsMachineImageRequest",
        "TestIamPermissionsNetworkAttachmentRequest",
        "TestIamPermissionsNetworkEndpointGroupRequest",
        "TestIamPermissionsNetworkFirewallPolicyRequest",
        "TestIamPermissionsNetworkRequest",
        "TestIamPermissionsNodeGroupRequest",
        "TestIamPermissionsNodeTemplateRequest",
        "TestIamPermissionsPacketMirroringRequest",
        "TestIamPermissionsRegionAutoscalerRequest",
        "TestIamPermissionsRegionBackendServiceRequest",
        "TestIamPermissionsRegionCommitmentRequest",
        "TestIamPermissionsRegionDiskRequest",
        "TestIamPermissionsRegionHealthCheckRequest",
        "TestIamPermissionsRegionHealthCheckServiceRequest",
        "TestIamPermissionsRegionInstanceGroupManagerRequest",
        "TestIamPermissionsRegionInstanceGroupRequest",
        "TestIamPermissionsRegionInstantSnapshotRequest",
        "TestIamPermissionsRegionNetworkFirewallPolicyRequest",
        "TestIamPermissionsRegionNotificationEndpointRequest",
        "TestIamPermissionsRegionSnapshotRequest",
        "TestIamPermissionsRegionSslCertificateRequest",
        "TestIamPermissionsRegionSslPolicyRequest",
        "TestIamPermissionsRegionTargetHttpProxyRequest",
        "TestIamPermissionsRegionTargetHttpsProxyRequest",
        "TestIamPermissionsRegionTargetTcpProxyRequest",
        "TestIamPermissionsRegionUrlMapRequest",
        "TestIamPermissionsReservationRequest",
        "TestIamPermissionsResourcePolicyRequest",
        "TestIamPermissionsRouteRequest",
        "TestIamPermissionsRouterRequest",
        "TestIamPermissionsSecurityPolicyRequest",
        "TestIamPermissionsServiceAttachmentRequest",
        "TestIamPermissionsSnapshotRequest",
        "TestIamPermissionsSslCertificateRequest",
        "TestIamPermissionsSslPolicyRequest",
        "TestIamPermissionsStoragePoolRequest",
        "TestIamPermissionsSubnetworkRequest",
        "TestIamPermissionsTargetGrpcProxyRequest",
        "TestIamPermissionsTargetHttpProxyRequest",
        "TestIamPermissionsTargetHttpsProxyRequest",
        "TestIamPermissionsTargetInstanceRequest",
        "TestIamPermissionsTargetPoolRequest",
        "TestIamPermissionsTargetSslProxyRequest",
        "TestIamPermissionsTargetTcpProxyRequest",
        "TestIamPermissionsTargetVpnGatewayRequest",
        "TestIamPermissionsUrlMapRequest",
        "TestIamPermissionsVpnGatewayRequest",
        "TestIamPermissionsVpnTunnelRequest",
        "TestPermissionsRequest",
        "TestPermissionsResponse",
        "Uint128",
        "UpcomingMaintenance",
        "UpdateAccessConfigInstanceRequest",
        "UpdateAutoscalerRequest",
        "UpdateBackendBucketRequest",
        "UpdateBackendServiceRequest",
        "UpdateDiskRequest",
        "UpdateDisplayDeviceInstanceRequest",
        "UpdateFirewallRequest",
        "UpdateFutureReservationRequest",
        "UpdateHealthCheckRequest",
        "UpdateInstanceGroupManagerRequest",
        "UpdateInstanceRequest",
        "UpdateLicenseRequest",
        "UpdateNetworkInterfaceInstanceRequest",
        "UpdatePeeringNetworkRequest",
        "UpdatePerInstanceConfigsInstanceGroupManagerRequest",
        "UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest",
        "UpdatePreviewFeatureRequest",
        "UpdateRegionAutoscalerRequest",
        "UpdateRegionBackendServiceRequest",
        "UpdateRegionCommitmentRequest",
        "UpdateRegionDiskRequest",
        "UpdateRegionHealthCheckRequest",
        "UpdateRegionInstanceGroupManagerRequest",
        "UpdateRegionUrlMapRequest",
        "UpdateReservationRequest",
        "UpdateReservationsRegionCommitmentRequest",
        "UpdateRoutePolicyRouterRequest",
        "UpdateRouterRequest",
        "UpdateShieldedInstanceConfigInstanceRequest",
        "UpdateShieldedVmConfigInstanceRequest",
        "UpdateStoragePoolRequest",
        "UpdateUrlMapRequest",
        "UrlMap",
        "UrlMapList",
        "UrlMapReference",
        "UrlMapTest",
        "UrlMapTestHeader",
        "UrlMapValidationResult",
        "UrlMapsAggregatedList",
        "UrlMapsScopedList",
        "UrlMapsValidateRequest",
        "UrlMapsValidateResponse",
        "UrlRewrite",
        "UsableSubnetwork",
        "UsableSubnetworkSecondaryRange",
        "UsableSubnetworksAggregatedList",
        "UsageExportLocation",
        "ValidateRegionUrlMapRequest",
        "ValidateUrlMapRequest",
        "VmEndpointNatMappings",
        "VmEndpointNatMappingsInterfaceNatMappings",
        "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings",
        "VmEndpointNatMappingsList",
        "VpnGateway",
        "VpnGatewayAggregatedList",
        "VpnGatewayList",
        "VpnGatewayStatus",
        "VpnGatewayStatusHighAvailabilityRequirementState",
        "VpnGatewayStatusTunnel",
        "VpnGatewayStatusVpnConnection",
        "VpnGatewayVpnGatewayInterface",
        "VpnGatewaysGetStatusResponse",
        "VpnGatewaysScopedList",
        "VpnTunnel",
        "VpnTunnelAggregatedList",
        "VpnTunnelList",
        "VpnTunnelsScopedList",
        "WafExpressionSet",
        "WafExpressionSetExpression",
        "WaitGlobalOperationRequest",
        "WaitRegionOperationRequest",
        "WaitZoneOperationRequest",
        "Warning",
        "Warnings",
        "WeightedBackendService",
        "Wire",
        "WireEndpoint",
        "WireGroup",
        "WireGroupEndpoint",
        "WireGroupEndpointInterconnect",
        "WireGroupList",
        "WireGroupProperties",
        "WireGroupTopology",
        "WireGroupTopologyEndpoint",
        "WireProperties",
        "WithdrawPublicAdvertisedPrefixeRequest",
        "WithdrawPublicDelegatedPrefixeRequest",
        "XpnHostList",
        "XpnResourceId",
        "Zone",
        "ZoneList",
        "ZoneSetLabelsRequest",
        "ZoneSetPolicyRequest",
    },
)


class AWSV4Signature(proto.Message):
    r"""Messages

    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'.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_key (str):
            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

            This field is a member of `oneof`_ ``_access_key``.
        access_key_id (str):
            The identifier of an access key used for s3
            bucket authentication.

            This field is a member of `oneof`_ ``_access_key_id``.
        access_key_version (str):
            The optional version identifier for the
            access key. You can use this to keep track of
            different iterations of your access key.

            This field is a member of `oneof`_ ``_access_key_version``.
        origin_region (str):
            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.

            This field is a member of `oneof`_ ``_origin_region``.
    """

    access_key: str = proto.Field(
        proto.STRING,
        number=468922628,
        optional=True,
    )
    access_key_id: str = proto.Field(
        proto.STRING,
        number=292975158,
        optional=True,
    )
    access_key_version: str = proto.Field(
        proto.STRING,
        number=80261277,
        optional=True,
    )
    origin_region: str = proto.Field(
        proto.STRING,
        number=265305645,
        optional=True,
    )


class AbandonInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.AbandonInstances.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_abandon_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersAbandonInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_abandon_instances_request_resource: "InstanceGroupManagersAbandonInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=320929016,
        message="InstanceGroupManagersAbandonInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AbandonInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.AbandonInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_abandon_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersAbandonInstancesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_abandon_instances_request_resource: "RegionInstanceGroupManagersAbandonInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=488499491,
        message="RegionInstanceGroupManagersAbandonInstancesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AcceleratorConfig(proto.Message):
    r"""A specification of the type and number of accelerator cards
    attached to the instance.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerator_count (int):
            The number of the guest accelerator cards
            exposed to this instance.

            This field is a member of `oneof`_ ``_accelerator_count``.
        accelerator_type (str):
            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.

            This field is a member of `oneof`_ ``_accelerator_type``.
    """

    accelerator_count: int = proto.Field(
        proto.INT32,
        number=504879675,
        optional=True,
    )
    accelerator_type: str = proto.Field(
        proto.STRING,
        number=138031246,
        optional=True,
    )


class AcceleratorType(proto.Message):
    r"""Represents an Accelerator Type resource. Google Cloud
    Platform provides graphics processing units (accelerators) that
    you can add to VM instances to improve or accelerate performance
    when working with intensive workloads. For more information,
    read GPUs on Compute Engine.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            [Output Only] The deprecation status associated with this
            accelerator type.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            [Output Only] An optional textual description of the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] The type of the resource. Always
            compute#acceleratorType for accelerator types.

            This field is a member of `oneof`_ ``_kind``.
        maximum_cards_per_instance (int):
            [Output Only] Maximum number of accelerator cards allowed
            per instance.

            This field is a member of `oneof`_ ``_maximum_cards_per_instance``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined, fully qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    maximum_cards_per_instance: int = proto.Field(
        proto.INT32,
        number=263814482,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class AcceleratorTypeAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.AcceleratorTypesScopedList]):
            A list of AcceleratorTypesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#acceleratorTypeAggregatedList for aggregated lists
            of accelerator types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "AcceleratorTypesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="AcceleratorTypesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AcceleratorTypeList(proto.Message):
    r"""Contains a list of accelerator types.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorType]):
            A list of AcceleratorType resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#acceleratorTypeList for lists of accelerator types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["AcceleratorType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="AcceleratorType",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AcceleratorTypesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerator_types (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorType]):
            [Output Only] A list of accelerator types contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that appears when the
            accelerator types list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    accelerator_types: MutableSequence["AcceleratorType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=520872357,
        message="AcceleratorType",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class Accelerators(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        guest_accelerator_count (int):
            Number of accelerator cards exposed to the
            guest.

            This field is a member of `oneof`_ ``_guest_accelerator_count``.
        guest_accelerator_type (str):
            The accelerator type resource name, not a
            full URL, e.g. nvidia-tesla-t4.

            This field is a member of `oneof`_ ``_guest_accelerator_type``.
    """

    guest_accelerator_count: int = proto.Field(
        proto.INT32,
        number=479079316,
        optional=True,
    )
    guest_accelerator_type: str = proto.Field(
        proto.STRING,
        number=293064725,
        optional=True,
    )


class AccessConfig(proto.Message):
    r"""An access configuration attached to an instance's network
    interface. Only one access config per instance is supported.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        external_ipv6 (str):
            Applies to ipv6AccessConfigs only. The first
            IPv6 address of the external IPv6 range
            associated with this instance, prefix length is
            stored in externalIpv6PrefixLength in
            ipv6AccessConfig. To use a static external IP
            address, it must be unused and in the same
            region as the instance's zone. If not specified,
            Google Cloud will automatically assign an
            external IPv6 address from the instance's
            subnetwork.

            This field is a member of `oneof`_ ``_external_ipv6``.
        external_ipv6_prefix_length (int):
            Applies to ipv6AccessConfigs only. The prefix
            length of the external IPv6 range.

            This field is a member of `oneof`_ ``_external_ipv6_prefix_length``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#accessConfig for access configs.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            The name of this access configuration. In
            accessConfigs (IPv4), the default and
            recommended name is External NAT, but you can
            use any arbitrary string, such as My external IP
            or Network Access. In ipv6AccessConfigs, the
            recommend name is External IPv6.

            This field is a member of `oneof`_ ``_name``.
        nat_i_p (str):
            Applies to accessConfigs (IPv4) only. An
            external IP address associated with this
            instance. Specify an unused static external IP
            address available to the project or leave this
            field undefined to use an IP from a shared
            ephemeral IP address pool. If you specify a
            static external IP address, it must live in the
            same region as the zone of the instance.

            This field is a member of `oneof`_ ``_nat_i_p``.
        network_tier (str):
            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. Check the
            NetworkTier enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_network_tier``.
        public_ptr_domain_name (str):
            The DNS domain name for the public PTR record. You can set
            this field only if the ``setPublicPtr`` field is enabled in
            accessConfig. If this field is unspecified in
            ipv6AccessConfig, a default PTR record will be created for
            first IP in associated external IPv6 range.

            This field is a member of `oneof`_ ``_public_ptr_domain_name``.
        security_policy (str):
            The resource URL for the security policy
            associated with this access config.

            This field is a member of `oneof`_ ``_security_policy``.
        set_public_ptr (bool):
            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.

            This field is a member of `oneof`_ ``_set_public_ptr``.
        type_ (str):
            The type of configuration. In accessConfigs (IPv4), the
            default and only option is ONE_TO_ONE_NAT. In
            ipv6AccessConfigs, the default and only option is
            DIRECT_IPV6. Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class NetworkTier(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_NETWORK_TIER (0):
                A value indicating that the enum field is not
                set.
            FIXED_STANDARD (310464328):
                Public internet quality with fixed bandwidth.
            PREMIUM (399530551):
                High quality, Google-grade network tier,
                support for all networking products.
            STANDARD (484642493):
                Public internet quality, only limited support
                for other networking products.
            STANDARD_OVERRIDES_FIXED_STANDARD (465847234):
                (Output only) Temporary tier for FIXED_STANDARD when fixed
                standard tier is expired or not configured.
        """
        UNDEFINED_NETWORK_TIER = 0
        FIXED_STANDARD = 310464328
        PREMIUM = 399530551
        STANDARD = 484642493
        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234

    class Type(proto.Enum):
        r"""The type of configuration. In accessConfigs (IPv4), the default and
        only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and
        only option is DIRECT_IPV6.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            DIRECT_IPV6 (4397213):
                No description available.
            ONE_TO_ONE_NAT (84090205):
                No description available.
        """
        UNDEFINED_TYPE = 0
        DIRECT_IPV6 = 4397213
        ONE_TO_ONE_NAT = 84090205

    external_ipv6: str = proto.Field(
        proto.STRING,
        number=532703707,
        optional=True,
    )
    external_ipv6_prefix_length: int = proto.Field(
        proto.INT32,
        number=425672143,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    nat_i_p: str = proto.Field(
        proto.STRING,
        number=117634556,
        optional=True,
    )
    network_tier: str = proto.Field(
        proto.STRING,
        number=517397843,
        optional=True,
    )
    public_ptr_domain_name: str = proto.Field(
        proto.STRING,
        number=316599167,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
        optional=True,
    )
    set_public_ptr: bool = proto.Field(
        proto.BOOL,
        number=523870229,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class AddAccessConfigInstanceRequest(proto.Message):
    r"""A request message for Instances.AddAccessConfig. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_config_resource (google.cloud.compute_v1beta.types.AccessConfig):
            The body resource for this request
        instance (str):
            The instance name for this request.
        network_interface (str):
            The name of the network interface to add to
            this instance.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    access_config_resource: "AccessConfig" = proto.Field(
        proto.MESSAGE,
        number=387825552,
        message="AccessConfig",
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    network_interface: str = proto.Field(
        proto.STRING,
        number=365387880,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AddAssociationFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.AddAssociation. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_association_resource (google.cloud.compute_v1beta.types.FirewallPolicyAssociation):
            The body resource for this request
        replace_existing_association (bool):
            Indicates whether or not to replace it if an
            association of the attachment already exists.
            This is false by default, in which case an error
            will be returned if an association already
            exists.

            This field is a member of `oneof`_ ``_replace_existing_association``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_association_resource: "FirewallPolicyAssociation" = proto.Field(
        proto.MESSAGE,
        number=259546170,
        message="FirewallPolicyAssociation",
    )
    replace_existing_association: bool = proto.Field(
        proto.BOOL,
        number=209541240,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddAssociationNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.AddAssociation.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_association_resource (google.cloud.compute_v1beta.types.FirewallPolicyAssociation):
            The body resource for this request
        project (str):
            Project ID for this request.
        replace_existing_association (bool):
            Indicates whether or not to replace it if an
            association of the attachment already exists.
            This is false by default, in which case an error
            will be returned if an association already
            exists.

            This field is a member of `oneof`_ ``_replace_existing_association``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_association_resource: "FirewallPolicyAssociation" = proto.Field(
        proto.MESSAGE,
        number=259546170,
        message="FirewallPolicyAssociation",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    replace_existing_association: bool = proto.Field(
        proto.BOOL,
        number=209541240,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddAssociationOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for
    OrganizationSecurityPolicies.AddAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        replace_existing_association (bool):
            Indicates whether or not to replace it if an
            association of the attachment already exists.
            This is false by default, in which case an error
            will be returned if an association already
            exists.

            This field is a member of `oneof`_ ``_replace_existing_association``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
        security_policy_association_resource (google.cloud.compute_v1beta.types.SecurityPolicyAssociation):
            The body resource for this request
    """

    replace_existing_association: bool = proto.Field(
        proto.BOOL,
        number=209541240,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_association_resource: "SecurityPolicyAssociation" = proto.Field(
        proto.MESSAGE,
        number=11761274,
        message="SecurityPolicyAssociation",
    )


class AddAssociationRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.AddAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        associated_policy_to_be_replaced (str):
            Name of the firewall policy associated with the target
            network to swap association with. This field is mutually
            exclusive with 'replace_existing_association'.

            This field is a member of `oneof`_ ``_associated_policy_to_be_replaced``.
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_association_resource (google.cloud.compute_v1beta.types.FirewallPolicyAssociation):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        replace_existing_association (bool):
            Indicates whether or not to replace it if an
            association already exists. This is false by
            default, in which case an error will be returned
            if an association already exists.

            This field is a member of `oneof`_ ``_replace_existing_association``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    associated_policy_to_be_replaced: str = proto.Field(
        proto.STRING,
        number=240901404,
        optional=True,
    )
    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_association_resource: "FirewallPolicyAssociation" = proto.Field(
        proto.MESSAGE,
        number=259546170,
        message="FirewallPolicyAssociation",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    replace_existing_association: bool = proto.Field(
        proto.BOOL,
        number=209541240,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddHealthCheckTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.AddHealthCheck. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_pool (str):
            Name of the target pool to add a health check
            to.
        target_pools_add_health_check_request_resource (google.cloud.compute_v1beta.types.TargetPoolsAddHealthCheckRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )
    target_pools_add_health_check_request_resource: "TargetPoolsAddHealthCheckRequest" = proto.Field(
        proto.MESSAGE,
        number=269573412,
        message="TargetPoolsAddHealthCheckRequest",
    )


class AddInstanceTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.AddInstance. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_pool (str):
            Name of the TargetPool resource to add
            instances to.
        target_pools_add_instance_request_resource (google.cloud.compute_v1beta.types.TargetPoolsAddInstanceRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )
    target_pools_add_instance_request_resource: "TargetPoolsAddInstanceRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=428796404,
            message="TargetPoolsAddInstanceRequest",
        )
    )


class AddInstancesInstanceGroupRequest(proto.Message):
    r"""A request message for InstanceGroups.AddInstances. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group (str):
            The name of the instance group where you are
            adding instances.
        instance_groups_add_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupsAddInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the instance group
            is located.
    """

    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    instance_groups_add_instances_request_resource: "InstanceGroupsAddInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=453713246,
        message="InstanceGroupsAddInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AddNetworkInterfaceInstanceRequest(proto.Message):
    r"""A request message for Instances.AddNetworkInterface. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            The instance name for this request stored as resource_id.
            Name should conform to RFC1035 or be an unsigned long
            integer.
        network_interface_resource (google.cloud.compute_v1beta.types.NetworkInterface):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    network_interface_resource: "NetworkInterface" = proto.Field(
        proto.MESSAGE,
        number=325814789,
        message="NetworkInterface",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AddNodesNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.AddNodes. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_group (str):
            Name of the NodeGroup resource.
        node_groups_add_nodes_request_resource (google.cloud.compute_v1beta.types.NodeGroupsAddNodesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    node_groups_add_nodes_request_resource: "NodeGroupsAddNodesRequest" = proto.Field(
        proto.MESSAGE,
        number=131263288,
        message="NodeGroupsAddNodesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AddPacketMirroringRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for
    FirewallPolicies.AddPacketMirroringRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddPacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    NetworkFirewallPolicies.AddPacketMirroringRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        max_priority (int):
            When rule.priority is not specified, auto
            choose a unused priority between minPriority and
            maxPriority>. This field is exclusive with
            rule.priority.

            This field is a member of `oneof`_ ``_max_priority``.
        min_priority (int):
            When rule.priority is not specified, auto
            choose a unused priority between minPriority and
            maxPriority>. This field is exclusive with
            rule.priority.

            This field is a member of `oneof`_ ``_min_priority``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    max_priority: int = proto.Field(
        proto.INT32,
        number=329635359,
        optional=True,
    )
    min_priority: int = proto.Field(
        proto.INT32,
        number=267190513,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddPeeringNetworkRequest(proto.Message):
    r"""A request message for Networks.AddPeering. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network (str):
            Name of the network resource to add peering
            to.
        networks_add_peering_request_resource (google.cloud.compute_v1beta.types.NetworksAddPeeringRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    networks_add_peering_request_resource: "NetworksAddPeeringRequest" = proto.Field(
        proto.MESSAGE,
        number=388810421,
        message="NetworksAddPeeringRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddResourcePoliciesDiskRequest(proto.Message):
    r"""A request message for Disks.AddResourcePolicies. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The disk name for this request.
        disks_add_resource_policies_request_resource (google.cloud.compute_v1beta.types.DisksAddResourcePoliciesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    disks_add_resource_policies_request_resource: "DisksAddResourcePoliciesRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=496483363,
            message="DisksAddResourcePoliciesRequest",
        )
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AddResourcePoliciesInstanceRequest(proto.Message):
    r"""A request message for Instances.AddResourcePolicies. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            The instance name for this request.
        instances_add_resource_policies_request_resource (google.cloud.compute_v1beta.types.InstancesAddResourcePoliciesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_add_resource_policies_request_resource: "InstancesAddResourcePoliciesRequest" = proto.Field(
        proto.MESSAGE,
        number=489351963,
        message="InstancesAddResourcePoliciesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AddResourcePoliciesRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.AddResourcePolicies. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The disk name for this request.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_disks_add_resource_policies_request_resource (google.cloud.compute_v1beta.types.RegionDisksAddResourcePoliciesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_disks_add_resource_policies_request_resource: "RegionDisksAddResourcePoliciesRequest" = proto.Field(
        proto.MESSAGE,
        number=284196750,
        message="RegionDisksAddResourcePoliciesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.AddRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.AddRule. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        max_priority (int):
            When rule.priority is not specified, auto
            choose a unused priority between minPriority and
            maxPriority>. This field is exclusive with
            rule.priority.

            This field is a member of `oneof`_ ``_max_priority``.
        min_priority (int):
            When rule.priority is not specified, auto
            choose a unused priority between minPriority and
            maxPriority>. This field is exclusive with
            rule.priority.

            This field is a member of `oneof`_ ``_min_priority``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    max_priority: int = proto.Field(
        proto.INT32,
        number=329635359,
        optional=True,
    )
    min_priority: int = proto.Field(
        proto.INT32,
        number=267190513,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddRuleOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.AddRule.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
        security_policy_rule_resource (google.cloud.compute_v1beta.types.SecurityPolicyRule):
            The body resource for this request
    """

    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_rule_resource: "SecurityPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=402693443,
        message="SecurityPolicyRule",
    )


class AddRuleRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for RegionNetworkFirewallPolicies.AddRule.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        max_priority (int):
            When rule.priority is not specified, auto
            choose a unused priority between minPriority and
            maxPriority>. This field is exclusive with
            rule.priority.

            This field is a member of `oneof`_ ``_max_priority``.
        min_priority (int):
            When rule.priority is not specified, auto
            choose a unused priority between minPriority and
            maxPriority>. This field is exclusive with
            rule.priority.

            This field is a member of `oneof`_ ``_min_priority``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    max_priority: int = proto.Field(
        proto.INT32,
        number=329635359,
        optional=True,
    )
    min_priority: int = proto.Field(
        proto.INT32,
        number=267190513,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AddRuleRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.AddRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        security_policy (str):
            Name of the security policy to update.
        security_policy_rule_resource (google.cloud.compute_v1beta.types.SecurityPolicyRule):
            The body resource for this request
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_rule_resource: "SecurityPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=402693443,
        message="SecurityPolicyRule",
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class AddRuleSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.AddRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        security_policy (str):
            Name of the security policy to update.
        security_policy_rule_resource (google.cloud.compute_v1beta.types.SecurityPolicyRule):
            The body resource for this request
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_rule_resource: "SecurityPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=402693443,
        message="SecurityPolicyRule",
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class AddSignedUrlKeyBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.AddSignedUrlKey. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_bucket (str):
            Name of the BackendBucket resource to which
            the Signed URL Key should be added. The name
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        signed_url_key_resource (google.cloud.compute_v1beta.types.SignedUrlKey):
            The body resource for this request
    """

    backend_bucket: str = proto.Field(
        proto.STRING,
        number=91714037,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    signed_url_key_resource: "SignedUrlKey" = proto.Field(
        proto.MESSAGE,
        number=457625985,
        message="SignedUrlKey",
    )


class AddSignedUrlKeyBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.AddSignedUrlKey. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to which
            the Signed URL Key should be added. The name
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        signed_url_key_resource (google.cloud.compute_v1beta.types.SignedUrlKey):
            The body resource for this request
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    signed_url_key_resource: "SignedUrlKey" = proto.Field(
        proto.MESSAGE,
        number=457625985,
        message="SignedUrlKey",
    )


class Address(proto.Message):
    r"""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/beta/globalAddresses>`__
    \* `Regional (external and
    internal) <https://cloud.google.com/compute/docs/reference/rest/beta/addresses>`__
    For more information, see Reserving a static external IP address.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            The static IP address represented by this
            resource.

            This field is a member of `oneof`_ ``_address``.
        address_type (str):
            The type of address to reserve, either
            INTERNAL or EXTERNAL. If unspecified, defaults
            to EXTERNAL. Check the AddressType enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_address_type``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this field when you create the resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        ip_version (str):
            The IP version that will be used by this
            address. Valid options are IPV4 or IPV6. Check
            the IpVersion enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_ip_version``.
        ipv6_endpoint_type (str):
            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.
            Check the Ipv6EndpointType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_ipv6_endpoint_type``.
        kind (str):
            [Output Only] Type of the resource. Always compute#address
            for addresses.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this Address, which is essentially a hash of the
            labels set used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash in order to update
            or change labels, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve an Address.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?``. The first character must be
            a lowercase letter, and all following characters (except for
            the last character) must be a dash, lowercase letter, or
            digit. The last character must be a lowercase letter or
            digit.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            The URL of the network in which to reserve the address. This
            field can only be used with INTERNAL type with the
            VPC_PEERING purpose.

            This field is a member of `oneof`_ ``_network``.
        network_tier (str):
            This signifies the networking tier used for
            configuring this address and can only take the
            following values: PREMIUM or STANDARD. Internal
            IP addresses are always Premium Tier; global
            external IP addresses are always Premium Tier;
            regional external IP addresses can be either
            Standard or Premium Tier. If this field is not
            specified, it is assumed to be PREMIUM. Check
            the NetworkTier enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_network_tier``.
        prefix_length (int):
            The prefix length if the resource represents
            an IP range.

            This field is a member of `oneof`_ ``_prefix_length``.
        purpose (str):
            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. Check the
            Purpose enum for the list of possible values.

            This field is a member of `oneof`_ ``_purpose``.
        region (str):
            [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.*

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [Output Only] The status of the address, which can be one of
            RESERVING, RESERVED, or IN_USE. An address that is RESERVING
            is currently in the process of being reserved. A RESERVED
            address is currently reserved and available to use. An
            IN_USE address is currently being used by another resource
            and is not available. Check the Status enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_status``.
        subnetwork (str):
            The URL of the subnetwork in which to reserve the address.
            If an IP address is specified, it must be within the
            subnetwork's IP range. This field can only be used with
            INTERNAL type with a GCE_ENDPOINT or DNS_RESOLVER purpose.

            This field is a member of `oneof`_ ``_subnetwork``.
        users (MutableSequence[str]):
            [Output Only] The URLs of the resources that are using this
            address.
    """

    class AddressType(proto.Enum):
        r"""The type of address to reserve, either INTERNAL or EXTERNAL.
        If unspecified, defaults to EXTERNAL.

        Values:
            UNDEFINED_ADDRESS_TYPE (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL (35607499):
                A publicly visible external IP address.
            INTERNAL (279295677):
                A private network IP address, for use with an
                Instance or Internal Load Balancer forwarding
                rule.
            UNSPECIFIED_TYPE (53933922):
                No description available.
        """
        UNDEFINED_ADDRESS_TYPE = 0
        EXTERNAL = 35607499
        INTERNAL = 279295677
        UNSPECIFIED_TYPE = 53933922

    class IpVersion(proto.Enum):
        r"""The IP version that will be used by this address. Valid
        options are IPV4 or IPV6.

        Values:
            UNDEFINED_IP_VERSION (0):
                A value indicating that the enum field is not
                set.
            IPV4 (2254341):
                No description available.
            IPV6 (2254343):
                No description available.
            UNSPECIFIED_VERSION (21850000):
                No description available.
        """
        UNDEFINED_IP_VERSION = 0
        IPV4 = 2254341
        IPV6 = 2254343
        UNSPECIFIED_VERSION = 21850000

    class Ipv6EndpointType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_IPV6_ENDPOINT_TYPE (0):
                A value indicating that the enum field is not
                set.
            NETLB (74173363):
                Reserved IPv6 address can be used on network
                load balancer.
            VM (2743):
                Reserved IPv6 address can be used on VM.
        """
        UNDEFINED_IPV6_ENDPOINT_TYPE = 0
        NETLB = 74173363
        VM = 2743

    class NetworkTier(proto.Enum):
        r"""This signifies the networking tier used for configuring this
        address and can only take the following values: PREMIUM or
        STANDARD. Internal IP addresses are always Premium Tier; global
        external IP addresses are always Premium Tier; regional external
        IP addresses can be either Standard or Premium Tier. If this
        field is not specified, it is assumed to be PREMIUM.

        Values:
            UNDEFINED_NETWORK_TIER (0):
                A value indicating that the enum field is not
                set.
            FIXED_STANDARD (310464328):
                Public internet quality with fixed bandwidth.
            PREMIUM (399530551):
                High quality, Google-grade network tier,
                support for all networking products.
            STANDARD (484642493):
                Public internet quality, only limited support
                for other networking products.
            STANDARD_OVERRIDES_FIXED_STANDARD (465847234):
                (Output only) Temporary tier for FIXED_STANDARD when fixed
                standard tier is expired or not configured.
        """
        UNDEFINED_NETWORK_TIER = 0
        FIXED_STANDARD = 310464328
        PREMIUM = 399530551
        STANDARD = 484642493
        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234

    class Purpose(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_PURPOSE (0):
                A value indicating that the enum field is not
                set.
            DNS_RESOLVER (476114556):
                DNS resolver address in the subnetwork.
            GCE_ENDPOINT (230515243):
                VM internal/alias IP, Internal LB service IP,
                etc.
            IPSEC_INTERCONNECT (340437251):
                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 (163666477):
                External IP automatically reserved for Cloud
                NAT.
            PRIVATE_SERVICE_CONNECT (48134724):
                A private network IP address that can be used
                to configure Private Service Connect. This
                purpose can be specified only for GLOBAL
                addresses of Type INTERNAL
            SERVERLESS (270492508):
                A regional internal IP address range reserved
                for Serverless.
            SHARED_LOADBALANCER_VIP (294447572):
                A private network IP address that can be
                shared by multiple Internal Load Balancer
                forwarding rules.
            VPC_PEERING (400800170):
                IP range for peer networks.
        """
        UNDEFINED_PURPOSE = 0
        DNS_RESOLVER = 476114556
        GCE_ENDPOINT = 230515243
        IPSEC_INTERCONNECT = 340437251
        NAT_AUTO = 163666477
        PRIVATE_SERVICE_CONNECT = 48134724
        SERVERLESS = 270492508
        SHARED_LOADBALANCER_VIP = 294447572
        VPC_PEERING = 400800170

    class Status(proto.Enum):
        r"""[Output Only] The status of the address, which can be one of
        RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
        currently in the process of being reserved. A RESERVED address is
        currently reserved and available to use. An IN_USE address is
        currently being used by another resource and is not available.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            IN_USE (17393485):
                Address is being used by another resource and
                is not available.
            RESERVED (432241448):
                Address is reserved and available to use.
            RESERVING (514587225):
                Address is being reserved.
        """
        UNDEFINED_STATUS = 0
        IN_USE = 17393485
        RESERVED = 432241448
        RESERVING = 514587225

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
        optional=True,
    )
    address_type: str = proto.Field(
        proto.STRING,
        number=264307877,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    ip_version: str = proto.Field(
        proto.STRING,
        number=294959552,
        optional=True,
    )
    ipv6_endpoint_type: str = proto.Field(
        proto.STRING,
        number=97501004,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    network_tier: str = proto.Field(
        proto.STRING,
        number=517397843,
        optional=True,
    )
    prefix_length: int = proto.Field(
        proto.INT32,
        number=453565747,
        optional=True,
    )
    purpose: str = proto.Field(
        proto.STRING,
        number=316407070,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )
    users: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=111578632,
    )


class AddressAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.AddressesScopedList]):
            A list of AddressesScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#addressAggregatedList for aggregated lists of
            addresses.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "AddressesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="AddressesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AddressList(proto.Message):
    r"""Contains a list of addresses.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Address]):
            A list of Address resources.
        kind (str):
            [Output Only] Type of resource. Always compute#addressList
            for lists of addresses.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Address"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Address",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AddressesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        addresses (MutableSequence[google.cloud.compute_v1beta.types.Address]):
            [Output Only] A list of addresses contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of addresses when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    addresses: MutableSequence["Address"] = proto.RepeatedField(
        proto.MESSAGE,
        number=337673122,
        message="Address",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AdvancedMachineFeatures(proto.Message):
    r"""Specifies options for controlling advanced machine features.
    Options that would traditionally be configured in a BIOS belong
    here. Features that require operating system support may have
    corresponding entries in the GuestOsFeatures of an Image (e.g.,
    whether or not the OS in the Image supports nested
    virtualization being enabled or disabled).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable_nested_virtualization (bool):
            Whether to enable nested virtualization or
            not (default is false).

            This field is a member of `oneof`_ ``_enable_nested_virtualization``.
        enable_uefi_networking (bool):
            Whether to enable UEFI networking for
            instance creation.

            This field is a member of `oneof`_ ``_enable_uefi_networking``.
        performance_monitoring_unit (str):
            Type of Performance Monitoring Unit requested
            on instance. Check the PerformanceMonitoringUnit
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_performance_monitoring_unit``.
        threads_per_core (int):
            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.

            This field is a member of `oneof`_ ``_threads_per_core``.
        turbo_mode (str):
            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.

            This field is a member of `oneof`_ ``_turbo_mode``.
        visible_core_count (int):
            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.

            This field is a member of `oneof`_ ``_visible_core_count``.
    """

    class PerformanceMonitoringUnit(proto.Enum):
        r"""Type of Performance Monitoring Unit requested on instance.

        Values:
            UNDEFINED_PERFORMANCE_MONITORING_UNIT (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURAL (155113693):
                Architecturally defined non-LLC events.
            ENHANCED (476873590):
                Most documented core/L2 and LLC events.
            PERFORMANCE_MONITORING_UNIT_UNSPECIFIED (429210692):
                No description available.
            STANDARD (484642493):
                Most documented core/L2 events.
        """
        UNDEFINED_PERFORMANCE_MONITORING_UNIT = 0
        ARCHITECTURAL = 155113693
        ENHANCED = 476873590
        PERFORMANCE_MONITORING_UNIT_UNSPECIFIED = 429210692
        STANDARD = 484642493

    enable_nested_virtualization: bool = proto.Field(
        proto.BOOL,
        number=16639365,
        optional=True,
    )
    enable_uefi_networking: bool = proto.Field(
        proto.BOOL,
        number=334485668,
        optional=True,
    )
    performance_monitoring_unit: str = proto.Field(
        proto.STRING,
        number=533618956,
        optional=True,
    )
    threads_per_core: int = proto.Field(
        proto.INT32,
        number=352611671,
        optional=True,
    )
    turbo_mode: str = proto.Field(
        proto.STRING,
        number=432965412,
        optional=True,
    )
    visible_core_count: int = proto.Field(
        proto.INT32,
        number=193198684,
        optional=True,
    )


class AggregatedListAcceleratorTypesRequest(proto.Message):
    r"""A request message for AcceleratorTypes.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListAddressesRequest(proto.Message):
    r"""A request message for Addresses.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListAutoscalersRequest(proto.Message):
    r"""A request message for Autoscalers.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListBackendServicesRequest(proto.Message):
    r"""A request message for BackendServices.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListDiskTypesRequest(proto.Message):
    r"""A request message for DiskTypes.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListDisksRequest(proto.Message):
    r"""A request message for Disks.AggregatedList. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListForwardingRulesRequest(proto.Message):
    r"""A request message for ForwardingRules.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListFutureReservationsRequest(proto.Message):
    r"""A request message for FutureReservations.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListGlobalOperationsRequest(proto.Message):
    r"""A request message for GlobalOperations.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListHealthChecksRequest(proto.Message):
    r"""A request message for HealthChecks.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListInstanceGroupManagersRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.AggregatedList.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListInstanceGroupsRequest(proto.Message):
    r"""A request message for InstanceGroups.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListInstanceTemplatesRequest(proto.Message):
    r"""A request message for InstanceTemplates.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListInstancesRequest(proto.Message):
    r"""A request message for Instances.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListInstantSnapshotsRequest(proto.Message):
    r"""A request message for InstantSnapshots.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListInterconnectAttachmentsRequest(proto.Message):
    r"""A request message for InterconnectAttachments.AggregatedList.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListMachineTypesRequest(proto.Message):
    r"""A request message for MachineTypes.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListNetworkAttachmentsRequest(proto.Message):
    r"""A request message for NetworkAttachments.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListNetworkEdgeSecurityServicesRequest(proto.Message):
    r"""A request message for
    NetworkEdgeSecurityServices.AggregatedList. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListNetworkEndpointGroupsRequest(proto.Message):
    r"""A request message for NetworkEndpointGroups.AggregatedList.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListNetworkFirewallPoliciesRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.AggregatedList.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListNodeGroupsRequest(proto.Message):
    r"""A request message for NodeGroups.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListNodeTemplatesRequest(proto.Message):
    r"""A request message for NodeTemplates.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListNodeTypesRequest(proto.Message):
    r"""A request message for NodeTypes.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListPacketMirroringsRequest(proto.Message):
    r"""A request message for PacketMirrorings.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListPublicDelegatedPrefixesRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.AggregatedList.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListRegionCommitmentsRequest(proto.Message):
    r"""A request message for RegionCommitments.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListReservationsRequest(proto.Message):
    r"""A request message for Reservations.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListResourcePoliciesRequest(proto.Message):
    r"""A request message for ResourcePolicies.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListRoutersRequest(proto.Message):
    r"""A request message for Routers.AggregatedList. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListSecurityPoliciesRequest(proto.Message):
    r"""A request message for SecurityPolicies.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListServiceAttachmentsRequest(proto.Message):
    r"""A request message for ServiceAttachments.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListSnapshotsRequest(proto.Message):
    r"""A request message for Snapshots.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListSslCertificatesRequest(proto.Message):
    r"""A request message for SslCertificates.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListSslPoliciesRequest(proto.Message):
    r"""A request message for SslPolicies.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListStoragePoolTypesRequest(proto.Message):
    r"""A request message for StoragePoolTypes.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListStoragePoolsRequest(proto.Message):
    r"""A request message for StoragePools.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListSubnetworksRequest(proto.Message):
    r"""A request message for Subnetworks.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListTargetHttpProxiesRequest(proto.Message):
    r"""A request message for TargetHttpProxies.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListTargetHttpsProxiesRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListTargetInstancesRequest(proto.Message):
    r"""A request message for TargetInstances.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListTargetPoolsRequest(proto.Message):
    r"""A request message for TargetPools.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListTargetTcpProxiesRequest(proto.Message):
    r"""A request message for TargetTcpProxies.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListTargetVpnGatewaysRequest(proto.Message):
    r"""A request message for TargetVpnGateways.AggregatedList. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListUrlMapsRequest(proto.Message):
    r"""A request message for UrlMaps.AggregatedList. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Name of the project scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListVpnGatewaysRequest(proto.Message):
    r"""A request message for VpnGateways.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AggregatedListVpnTunnelsRequest(proto.Message):
    r"""A request message for VpnTunnels.AggregatedList. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        include_all_scopes (bool):
            Indicates whether every visible scope for
            each scope type (zone, region, global) should be
            included in the response. For new resource types
            added after this field, the flag has no effect
            as new resource types will always include every
            visible scope for each scope type in response.
            For resource types which predate this field, if
            this flag is omitted or false, only scopes of
            the scope types where the resource type is
            expected to be found will be included.

            This field is a member of `oneof`_ ``_include_all_scopes``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project_number (int):
            The Shared VPC service project id or service
            project number for which aggregated list request
            is invoked for subnetworks list-usable api.

            This field is a member of `oneof`_ ``_service_project_number``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    include_all_scopes: bool = proto.Field(
        proto.BOOL,
        number=391327988,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project_number: int = proto.Field(
        proto.INT64,
        number=316757497,
        optional=True,
    )


class AliasIpRange(proto.Message):
    r"""An alias IP range attached to an instance's network
    interface.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_cidr_range (str):
            The IP alias ranges to allocate for this
            interface. This IP CIDR range must belong to the
            specified subnetwork and cannot contain IP
            addresses reserved by system or used by other
            network interfaces. This range may be a single
            IP address (such as 10.2.3.4), a netmask (such
            as /24) or a CIDR-formatted string (such as
            10.1.2.0/24).

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        subnetwork_range_name (str):
            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.

            This field is a member of `oneof`_ ``_subnetwork_range_name``.
    """

    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    subnetwork_range_name: str = proto.Field(
        proto.STRING,
        number=387995966,
        optional=True,
    )


class AllocationAggregateReservation(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        in_use_resources (MutableSequence[google.cloud.compute_v1beta.types.AllocationAggregateReservationReservedResourceInfo]):
            [Output only] List of resources currently in use.
        reserved_resources (MutableSequence[google.cloud.compute_v1beta.types.AllocationAggregateReservationReservedResourceInfo]):
            List of reserved resources (CPUs, memory,
            accelerators).
        vm_family (str):
            The VM family that all instances scheduled
            against this reservation must belong to. Check
            the VmFamily enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_vm_family``.
        workload_type (str):
            The workload type of the instances that will
            target this reservation. Check the WorkloadType
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_workload_type``.
    """

    class VmFamily(proto.Enum):
        r"""The VM family that all instances scheduled against this
        reservation must belong to.

        Values:
            UNDEFINED_VM_FAMILY (0):
                A value indicating that the enum field is not
                set.
            VM_FAMILY_CLOUD_TPU_DEVICE_CT3 (42845948):
                No description available.
            VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L (108020067):
                No description available.
            VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP (18705267):
                No description available.
            VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E (398926997):
                No description available.
            VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P (517384376):
                No description available.
            VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P (517384407):
                No description available.
            VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P (517384438):
                No description available.
        """
        UNDEFINED_VM_FAMILY = 0
        VM_FAMILY_CLOUD_TPU_DEVICE_CT3 = 42845948
        VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L = 108020067
        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP = 18705267
        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E = 398926997
        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P = 517384376
        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P = 517384407
        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P = 517384438

    class WorkloadType(proto.Enum):
        r"""The workload type of the instances that will target this
        reservation.

        Values:
            UNDEFINED_WORKLOAD_TYPE (0):
                A value indicating that the enum field is not
                set.
            BATCH (62971674):
                Reserved resources will be optimized for
                BATCH workloads, such as ML training.
            SERVING (17781740):
                Reserved resources will be optimized for
                SERVING workloads, such as ML inference.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_WORKLOAD_TYPE = 0
        BATCH = 62971674
        SERVING = 17781740
        UNSPECIFIED = 526786327

    in_use_resources: MutableSequence[
        "AllocationAggregateReservationReservedResourceInfo"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=409009107,
        message="AllocationAggregateReservationReservedResourceInfo",
    )
    reserved_resources: MutableSequence[
        "AllocationAggregateReservationReservedResourceInfo"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=213217742,
        message="AllocationAggregateReservationReservedResourceInfo",
    )
    vm_family: str = proto.Field(
        proto.STRING,
        number=125017580,
        optional=True,
    )
    workload_type: str = proto.Field(
        proto.STRING,
        number=273432322,
        optional=True,
    )


class AllocationAggregateReservationReservedResourceInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerator (google.cloud.compute_v1beta.types.AllocationAggregateReservationReservedResourceInfoAccelerator):
            Properties of accelerator resources in this
            reservation.

            This field is a member of `oneof`_ ``_accelerator``.
    """

    accelerator: "AllocationAggregateReservationReservedResourceInfoAccelerator" = (
        proto.Field(
            proto.MESSAGE,
            number=424338027,
            optional=True,
            message="AllocationAggregateReservationReservedResourceInfoAccelerator",
        )
    )


class AllocationAggregateReservationReservedResourceInfoAccelerator(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerator_count (int):
            Number of accelerators of specified type.

            This field is a member of `oneof`_ ``_accelerator_count``.
        accelerator_type (str):
            Full or partial URL to accelerator type. e.g.
            "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l".

            This field is a member of `oneof`_ ``_accelerator_type``.
    """

    accelerator_count: int = proto.Field(
        proto.INT32,
        number=504879675,
        optional=True,
    )
    accelerator_type: str = proto.Field(
        proto.STRING,
        number=138031246,
        optional=True,
    )


class AllocationReservationSharingPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        service_share_type (str):
            Sharing config for all Google Cloud services.
            Check the ServiceShareType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_service_share_type``.
    """

    class ServiceShareType(proto.Enum):
        r"""Sharing config for all Google Cloud services.

        Values:
            UNDEFINED_SERVICE_SHARE_TYPE (0):
                A value indicating that the enum field is not
                set.
            ALLOW_ALL (475536235):
                Allow all Google Cloud managed services to
                share reservations.
            DISALLOW_ALL (277786301):
                [Default] Disallow sharing with all Google Cloud services.
            SERVICE_SHARE_TYPE_UNSPECIFIED (279057148):
                No description available.
        """
        UNDEFINED_SERVICE_SHARE_TYPE = 0
        ALLOW_ALL = 475536235
        DISALLOW_ALL = 277786301
        SERVICE_SHARE_TYPE_UNSPECIFIED = 279057148

    service_share_type: str = proto.Field(
        proto.STRING,
        number=514508644,
        optional=True,
    )


class AllocationResourceStatus(proto.Message):
    r"""[Output Only] Contains output only fields.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        reservation_block_count (int):
            The number of reservation blocks associated
            with this reservation.

            This field is a member of `oneof`_ ``_reservation_block_count``.
        reservation_maintenance (google.cloud.compute_v1beta.types.GroupMaintenanceInfo):
            Maintenance information for this reservation

            This field is a member of `oneof`_ ``_reservation_maintenance``.
        specific_sku_allocation (google.cloud.compute_v1beta.types.AllocationResourceStatusSpecificSKUAllocation):
            Allocation Properties of this reservation.

            This field is a member of `oneof`_ ``_specific_sku_allocation``.
    """

    reservation_block_count: int = proto.Field(
        proto.INT32,
        number=161835754,
        optional=True,
    )
    reservation_maintenance: "GroupMaintenanceInfo" = proto.Field(
        proto.MESSAGE,
        number=340607776,
        optional=True,
        message="GroupMaintenanceInfo",
    )
    specific_sku_allocation: "AllocationResourceStatusSpecificSKUAllocation" = (
        proto.Field(
            proto.MESSAGE,
            number=196231151,
            optional=True,
            message="AllocationResourceStatusSpecificSKUAllocation",
        )
    )


class AllocationResourceStatusSpecificSKUAllocation(proto.Message):
    r"""Contains Properties set for the reservation.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        source_instance_template_id (str):
            ID of the instance template used to populate
            reservation properties.

            This field is a member of `oneof`_ ``_source_instance_template_id``.
        utilizations (MutableMapping[str, int]):
            Per service utilization breakdown. The Key is
            the Google Cloud managed service name.
    """

    source_instance_template_id: str = proto.Field(
        proto.STRING,
        number=111196154,
        optional=True,
    )
    utilizations: MutableMapping[str, int] = proto.MapField(
        proto.STRING,
        proto.INT64,
        number=402495121,
    )


class AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk(
    proto.Message
):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_size_gb (int):
            Specifies the size of the disk in base-2 GB.

            This field is a member of `oneof`_ ``_disk_size_gb``.
        interface (str):
            Specifies the disk interface to use for
            attaching this disk, which is either SCSI or
            NVME. The default is SCSI. For performance
            characteristics of SCSI over NVMe, see Local SSD
            performance. Check the Interface enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_interface``.
    """

    class Interface(proto.Enum):
        r"""Specifies the disk interface to use for attaching this disk,
        which is either SCSI or NVME. The default is SCSI. For
        performance characteristics of SCSI over NVMe, see Local SSD
        performance.

        Values:
            UNDEFINED_INTERFACE (0):
                A value indicating that the enum field is not
                set.
            NVME (2408800):
                No description available.
            SCSI (2539686):
                No description available.
        """
        UNDEFINED_INTERFACE = 0
        NVME = 2408800
        SCSI = 2539686

    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )
    interface: str = proto.Field(
        proto.STRING,
        number=502623545,
        optional=True,
    )


class AllocationSpecificSKUAllocationReservedInstanceProperties(proto.Message):
    r"""Properties of the SKU instances being reserved. Next ID: 9

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        guest_accelerators (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorConfig]):
            Specifies accelerator type and count.
        local_ssds (MutableSequence[google.cloud.compute_v1beta.types.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk]):
            Specifies amount of local ssd to reserve with
            each instance. The type of disk is local-ssd.
        location_hint (str):
            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.

            This field is a member of `oneof`_ ``_location_hint``.
        machine_type (str):
            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.

            This field is a member of `oneof`_ ``_machine_type``.
        maintenance_freeze_duration_hours (int):
            Specifies the number of hours after
            reservation creation where instances using the
            reservation won't be scheduled for maintenance.

            This field is a member of `oneof`_ ``_maintenance_freeze_duration_hours``.
        maintenance_interval (str):
            Specifies the frequency of planned maintenance events. The
            accepted values are: ``PERIODIC``. Check the
            MaintenanceInterval enum for the list of possible values.

            This field is a member of `oneof`_ ``_maintenance_interval``.
        min_cpu_platform (str):
            Minimum cpu platform the reservation.

            This field is a member of `oneof`_ ``_min_cpu_platform``.
    """

    class MaintenanceInterval(proto.Enum):
        r"""Specifies the frequency of planned maintenance events. The accepted
        values are: ``PERIODIC``.

        Values:
            UNDEFINED_MAINTENANCE_INTERVAL (0):
                A value indicating that the enum field is not
                set.
            AS_NEEDED (500724834):
                VMs are eligible to receive infrastructure
                and hypervisor updates as they become available.
                This may result in more maintenance operations
                (live migrations or terminations) for the VM
                than the PERIODIC and RECURRENT options.
            PERIODIC (142804635):
                VMs receive infrastructure and hypervisor updates on a
                periodic basis, minimizing the number of maintenance
                operations (live migrations or terminations) on an
                individual VM. This may mean a VM will take longer to
                receive an update than if it was configured for AS_NEEDED.
                Security updates will still be applied as soon as they are
                available.
            RECURRENT (194244550):
                VMs receive infrastructure and hypervisor updates on a
                periodic basis, minimizing the number of maintenance
                operations (live migrations or terminations) on an
                individual VM. This may mean a VM will take longer to
                receive an update than if it was configured for AS_NEEDED.
                Security updates will still be applied as soon as they are
                available. RECURRENT is used for GEN3 and Slice of Hardware
                VMs.
        """
        UNDEFINED_MAINTENANCE_INTERVAL = 0
        AS_NEEDED = 500724834
        PERIODIC = 142804635
        RECURRENT = 194244550

    guest_accelerators: MutableSequence["AcceleratorConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=463595119,
        message="AcceleratorConfig",
    )
    local_ssds: MutableSequence[
        "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=229951299,
        message="AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk",
    )
    location_hint: str = proto.Field(
        proto.STRING,
        number=350519505,
        optional=True,
    )
    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
        optional=True,
    )
    maintenance_freeze_duration_hours: int = proto.Field(
        proto.INT32,
        number=371662624,
        optional=True,
    )
    maintenance_interval: str = proto.Field(
        proto.STRING,
        number=403368049,
        optional=True,
    )
    min_cpu_platform: str = proto.Field(
        proto.STRING,
        number=242912759,
        optional=True,
    )


class AllocationSpecificSKUReservation(proto.Message):
    r"""This reservation type allows to pre allocate specific
    instance configuration.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        assured_count (int):
            [Output Only] Indicates how many instances are actually
            usable currently.

            This field is a member of `oneof`_ ``_assured_count``.
        count (int):
            Specifies the number of resources that are
            allocated.

            This field is a member of `oneof`_ ``_count``.
        in_use_count (int):
            [Output Only] Indicates how many instances are in use.

            This field is a member of `oneof`_ ``_in_use_count``.
        instance_properties (google.cloud.compute_v1beta.types.AllocationSpecificSKUAllocationReservedInstanceProperties):
            The instance properties for the reservation.

            This field is a member of `oneof`_ ``_instance_properties``.
        source_instance_template (str):
            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

            This field is a member of `oneof`_ ``_source_instance_template``.
    """

    assured_count: int = proto.Field(
        proto.INT64,
        number=281197645,
        optional=True,
    )
    count: int = proto.Field(
        proto.INT64,
        number=94851343,
        optional=True,
    )
    in_use_count: int = proto.Field(
        proto.INT64,
        number=493458877,
        optional=True,
    )
    instance_properties: "AllocationSpecificSKUAllocationReservedInstanceProperties" = (
        proto.Field(
            proto.MESSAGE,
            number=215355165,
            optional=True,
            message="AllocationSpecificSKUAllocationReservedInstanceProperties",
        )
    )
    source_instance_template: str = proto.Field(
        proto.STRING,
        number=332423616,
        optional=True,
    )


class Allowed(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        I_p_protocol (str):
            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.

            This field is a member of `oneof`_ ``_I_p_protocol``.
        ports (MutableSequence[str]):
            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"].
    """

    I_p_protocol: str = proto.Field(
        proto.STRING,
        number=488094525,
        optional=True,
    )
    ports: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=106854418,
    )


class AnnouncePublicAdvertisedPrefixeRequest(proto.Message):
    r"""A request message for PublicAdvertisedPrefixes.Announce. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_advertised_prefix (str):
            The name of the public advertised prefix. It
            should comply with RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_advertised_prefix: str = proto.Field(
        proto.STRING,
        number=101874590,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AnnouncePublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.Announce. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            The name of the public delegated prefix. It
            should comply with RFC1035.
        region (str):
            The name of the region where the public
            delegated prefix is located. It should comply
            with RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class ApplyUpdatesToInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.ApplyUpdatesToInstances. See the method
    description for details.

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group,
            should conform to RFC1035.
        instance_group_managers_apply_updates_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersApplyUpdatesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone where the managed
            instance group is located. Should conform to
            RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_apply_updates_request_resource: "InstanceGroupManagersApplyUpdatesRequest" = proto.Field(
        proto.MESSAGE,
        number=259242835,
        message="InstanceGroupManagersApplyUpdatesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ApplyUpdatesToInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.ApplyUpdatesToInstances. See the
    method description for details.

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group,
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request,
            should conform to RFC1035.
        region_instance_group_managers_apply_updates_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersApplyUpdatesRequest):
            The body resource for this request
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_apply_updates_request_resource: "RegionInstanceGroupManagersApplyUpdatesRequest" = proto.Field(
        proto.MESSAGE,
        number=76248318,
        message="RegionInstanceGroupManagersApplyUpdatesRequest",
    )


class AttachDiskInstanceRequest(proto.Message):
    r"""A request message for Instances.AttachDisk. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attached_disk_resource (google.cloud.compute_v1beta.types.AttachedDisk):
            The body resource for this request
        force_attach (bool):
            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.

            This field is a member of `oneof`_ ``_force_attach``.
        instance (str):
            The instance name for this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    attached_disk_resource: "AttachedDisk" = proto.Field(
        proto.MESSAGE,
        number=90605845,
        message="AttachedDisk",
    )
    force_attach: bool = proto.Field(
        proto.BOOL,
        number=142758425,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AttachNetworkEndpointsGlobalNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for
    GlobalNetworkEndpointGroups.AttachNetworkEndpoints. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        global_network_endpoint_groups_attach_endpoints_request_resource (google.cloud.compute_v1beta.types.GlobalNetworkEndpointGroupsAttachEndpointsRequest):
            The body resource for this request
        network_endpoint_group (str):
            The name of the network endpoint group where
            you are attaching network endpoints to. It
            should comply with RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    global_network_endpoint_groups_attach_endpoints_request_resource: "GlobalNetworkEndpointGroupsAttachEndpointsRequest" = proto.Field(
        proto.MESSAGE,
        number=30691563,
        message="GlobalNetworkEndpointGroupsAttachEndpointsRequest",
    )
    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AttachNetworkEndpointsNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for
    NetworkEndpointGroups.AttachNetworkEndpoints. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group where
            you are attaching network endpoints to. It
            should comply with RFC1035.
        network_endpoint_groups_attach_endpoints_request_resource (google.cloud.compute_v1beta.types.NetworkEndpointGroupsAttachEndpointsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the network
            endpoint group is located. It should comply with
            RFC1035.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    network_endpoint_groups_attach_endpoints_request_resource: "NetworkEndpointGroupsAttachEndpointsRequest" = proto.Field(
        proto.MESSAGE,
        number=531079,
        message="NetworkEndpointGroupsAttachEndpointsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class AttachNetworkEndpointsRegionNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for
    RegionNetworkEndpointGroups.AttachNetworkEndpoints. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group where
            you are attaching network endpoints to. It
            should comply with RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where you want to
            create the network endpoint group. It should
            comply with RFC1035.
        region_network_endpoint_groups_attach_endpoints_request_resource (google.cloud.compute_v1beta.types.RegionNetworkEndpointGroupsAttachEndpointsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_network_endpoint_groups_attach_endpoints_request_resource: "RegionNetworkEndpointGroupsAttachEndpointsRequest" = proto.Field(
        proto.MESSAGE,
        number=334986492,
        message="RegionNetworkEndpointGroupsAttachEndpointsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class AttachedDisk(proto.Message):
    r"""An instance-attached disk resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        architecture (str):
            [Output Only] The architecture of the attached disk. Valid
            values are ARM64 or X86_64. Check the Architecture enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_architecture``.
        auto_delete (bool):
            Specifies whether the disk will be
            auto-deleted when the instance is deleted (but
            not when the disk is detached from the
            instance).

            This field is a member of `oneof`_ ``_auto_delete``.
        boot (bool):
            Indicates that this is a boot disk. The
            virtual machine will use the first partition of
            the disk for its root filesystem.

            This field is a member of `oneof`_ ``_boot``.
        device_name (str):
            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.

            This field is a member of `oneof`_ ``_device_name``.
        disk_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Encrypts or decrypts a disk using a
            customer-supplied encryption key. If you are
            creating a new disk, this field encrypts the new
            disk using an encryption key that you provide.
            If you are attaching an existing disk that is
            already encrypted, this field decrypts the disk
            using the customer-supplied encryption key. If
            you encrypt a disk using a customer-supplied
            key, you must provide the same key again when
            you attempt to use this resource at a later
            time. For example, you must provide the key when
            you create a snapshot or an image from the disk
            or when you attach the disk to a virtual machine
            instance. If you do not provide an encryption
            key, then the disk will be encrypted using an
            automatically generated key and you do not need
            to provide a key to use the disk later. Note:
            Instance templates do not store
            customer-supplied encryption keys, so you cannot
            use your own keys to encrypt disks in a managed
            instance group. You cannot create VMs that have
            disks with customer-supplied keys using the bulk
            insert method.

            This field is a member of `oneof`_ ``_disk_encryption_key``.
        disk_size_gb (int):
            The size of the disk in GB.

            This field is a member of `oneof`_ ``_disk_size_gb``.
        force_attach (bool):
            [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.

            This field is a member of `oneof`_ ``_force_attach``.
        guest_os_features (MutableSequence[google.cloud.compute_v1beta.types.GuestOsFeature]):
            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.
        index (int):
            [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.

            This field is a member of `oneof`_ ``_index``.
        initialize_params (google.cloud.compute_v1beta.types.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 property is mutually
            exclusive with the source property; you can only define one
            or the other, but not both.

            This field is a member of `oneof`_ ``_initialize_params``.
        interface (str):
            Specifies the disk interface to use for
            attaching this disk, which is either SCSI or
            NVME. For most machine types, the default is
            SCSI. Local SSDs can use either NVME or SCSI. In
            certain configurations, persistent disks can use
            NVMe. For more information, see About persistent
            disks. Check the Interface enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_interface``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#attachedDisk for attached disks.

            This field is a member of `oneof`_ ``_kind``.
        licenses (MutableSequence[str]):
            [Output Only] Any valid publicly visible licenses.
        locked (bool):
            [Output Only] Whether to indicate the attached disk is
            locked. The locked disk is not allowed to be detached from
            the instance, or to be used as the source of the snapshot
            creation, and the image creation. The instance with at least
            one locked attached disk is not allow to be used as source
            of machine image creation, instant snapshot creation, and
            not allowed to be deleted with --keep-disk parameter set to
            true for locked disks.

            This field is a member of `oneof`_ ``_locked``.
        mode (str):
            The mode in which to attach this disk, either READ_WRITE or
            READ_ONLY. If not specified, the default is to attach the
            disk in READ_WRITE mode. Check the Mode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_mode``.
        saved_state (str):
            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. Check the SavedState enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_saved_state``.
        shielded_instance_initial_state (google.cloud.compute_v1beta.types.InitialStateConfig):
            [Output Only] shielded vm initial state stored on disk

            This field is a member of `oneof`_ ``_shielded_instance_initial_state``.
        source (str):
            Specifies a valid partial or full URL to an
            existing Persistent Disk resource. When creating
            a new instance boot disk, one of
            initializeParams.sourceImage or
            initializeParams.sourceSnapshot or disks.source
            is required. If desired, you can also attach
            existing non-root persistent disks using this
            property. This field is only applicable for
            persistent disks. Note that for
            InstanceTemplate, specify the disk name for
            zonal disk, and the URL for regional disk.

            This field is a member of `oneof`_ ``_source``.
        type_ (str):
            Specifies the type of the disk, either
            SCRATCH or PERSISTENT. If not specified, the
            default is PERSISTENT. Check the Type enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_type``.
        user_licenses (MutableSequence[str]):
            [Output Only] A list of user provided licenses. It
            represents a list of URLs to the license resource. Unlike
            regular licenses, user provided licenses can be modified
            after the disk is created.
    """

    class Architecture(proto.Enum):
        r"""[Output Only] The architecture of the attached disk. Valid values
        are ARM64 or X86_64.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    class Interface(proto.Enum):
        r"""Specifies the disk interface to use for attaching this disk,
        which is either SCSI or NVME. For most machine types, the
        default is SCSI. Local SSDs can use either NVME or SCSI. In
        certain configurations, persistent disks can use NVMe. For more
        information, see About persistent disks.

        Values:
            UNDEFINED_INTERFACE (0):
                A value indicating that the enum field is not
                set.
            NVME (2408800):
                No description available.
            SCSI (2539686):
                No description available.
        """
        UNDEFINED_INTERFACE = 0
        NVME = 2408800
        SCSI = 2539686

    class Mode(proto.Enum):
        r"""The mode in which to attach this disk, either READ_WRITE or
        READ_ONLY. If not specified, the default is to attach the disk in
        READ_WRITE mode.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            READ_ONLY (91950261):
                Attaches this disk in read-only mode.
                Multiple virtual machines can use a disk in
                read-only mode at a time.
            READ_WRITE (173607894):
                *[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.
        """
        UNDEFINED_MODE = 0
        READ_ONLY = 91950261
        READ_WRITE = 173607894

    class SavedState(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SAVED_STATE (0):
                A value indicating that the enum field is not
                set.
            DISK_SAVED_STATE_UNSPECIFIED (391290831):
                *[Default]* Disk state has not been preserved.
            PRESERVED (254159736):
                Disk state has been preserved.
        """
        UNDEFINED_SAVED_STATE = 0
        DISK_SAVED_STATE_UNSPECIFIED = 391290831
        PRESERVED = 254159736

    class Type(proto.Enum):
        r"""Specifies the type of the disk, either SCRATCH or PERSISTENT.
        If not specified, the default is PERSISTENT.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            PERSISTENT (460683927):
                No description available.
            SCRATCH (496778970):
                No description available.
        """
        UNDEFINED_TYPE = 0
        PERSISTENT = 460683927
        SCRATCH = 496778970

    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    auto_delete: bool = proto.Field(
        proto.BOOL,
        number=464761403,
        optional=True,
    )
    boot: bool = proto.Field(
        proto.BOOL,
        number=3029746,
        optional=True,
    )
    device_name: str = proto.Field(
        proto.STRING,
        number=67541716,
        optional=True,
    )
    disk_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=271660677,
        optional=True,
        message="CustomerEncryptionKey",
    )
    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )
    force_attach: bool = proto.Field(
        proto.BOOL,
        number=142758425,
        optional=True,
    )
    guest_os_features: MutableSequence["GuestOsFeature"] = proto.RepeatedField(
        proto.MESSAGE,
        number=79294545,
        message="GuestOsFeature",
    )
    index: int = proto.Field(
        proto.INT32,
        number=100346066,
        optional=True,
    )
    initialize_params: "AttachedDiskInitializeParams" = proto.Field(
        proto.MESSAGE,
        number=17697045,
        optional=True,
        message="AttachedDiskInitializeParams",
    )
    interface: str = proto.Field(
        proto.STRING,
        number=502623545,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337642578,
    )
    locked: bool = proto.Field(
        proto.BOOL,
        number=513159946,
        optional=True,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )
    saved_state: str = proto.Field(
        proto.STRING,
        number=411587801,
        optional=True,
    )
    shielded_instance_initial_state: "InitialStateConfig" = proto.Field(
        proto.MESSAGE,
        number=192356867,
        optional=True,
        message="InitialStateConfig",
    )
    source: str = proto.Field(
        proto.STRING,
        number=177235995,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    user_licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=388193862,
    )


class AttachedDiskInitializeParams(proto.Message):
    r"""[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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        architecture (str):
            The architecture of the attached disk. Valid values are
            arm64 or x86_64. Check the Architecture enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_architecture``.
        description (str):
            An optional description. Provide this
            property when creating the disk.

            This field is a member of `oneof`_ ``_description``.
        disk_name (str):
            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.

            This field is a member of `oneof`_ ``_disk_name``.
        disk_size_gb (int):
            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.

            This field is a member of `oneof`_ ``_disk_size_gb``.
        disk_type (str):
            Specifies the disk type to use to create the
            instance. If not specified, the default is
            pd-standard, specified using the full URL. For
            example:
            https://www.googleapis.com/compute/v1/projects/project/zones/zone
            /diskTypes/pd-standard For a full list of
            acceptable values, see Persistent disk types. If
            you specify this field when creating a VM, you
            can provide either the full or partial URL. For
            example, the following values are valid: -
            https://www.googleapis.com/compute/v1/projects/project/zones/zone
            /diskTypes/diskType -
            projects/project/zones/zone/diskTypes/diskType -
            zones/zone/diskTypes/diskType If you specify
            this field when creating or updating an instance
            template or all-instances configuration, specify
            the type of the disk, not the URL. For example:
            pd-standard.

            This field is a member of `oneof`_ ``_disk_type``.
        enable_confidential_compute (bool):
            Whether this disk is using confidential
            compute mode.

            This field is a member of `oneof`_ ``_enable_confidential_compute``.
        guest_os_features (MutableSequence[google.cloud.compute_v1beta.types.GuestOsFeature]):
            A list of features to enable on the guest
            operating system. Applicable only for bootable
            images. Read Enabling guest operating system
            features to see a list of available options.
            Guest OS features are applied by merging
            initializeParams.guestOsFeatures and
            disks.guestOsFeatures
        labels (MutableMapping[str, str]):
            Labels to apply to this disk. These can be
            later modified by the disks.setLabels method.
            This field is only applicable for persistent
            disks.
        licenses (MutableSequence[str]):
            A list of publicly visible licenses. Reserved
            for Google's use.
        multi_writer (bool):
            Indicates whether or not the disk can be
            read/write attached to more than one instance.

            This field is a member of `oneof`_ ``_multi_writer``.
        on_update_action (str):
            Specifies which action to take on instance
            update with this disk. Default is to use the
            existing disk. Check the OnUpdateAction enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_on_update_action``.
        provisioned_iops (int):
            Indicates how many IOPS to provision for the
            disk. This sets the number of I/O operations per
            second that the disk can handle. Values must be
            between 10,000 and 120,000. For more details,
            see the Extreme persistent disk documentation.

            This field is a member of `oneof`_ ``_provisioned_iops``.
        provisioned_throughput (int):
            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.

            This field is a member of `oneof`_ ``_provisioned_throughput``.
        replica_zones (MutableSequence[str]):
            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.
        resource_manager_tags (MutableMapping[str, str]):
            Resource manager tags to be bound to the disk. Tag keys and
            values have the same definition as resource manager tags.
            Keys must be in the format ``tagKeys/{tag_key_id}``, and
            values are in the format ``tagValues/456``. The field is
            ignored (both PUT & PATCH) when empty.
        resource_policies (MutableSequence[str]):
            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.
        source_image (str):
            The source image to create this disk. When
            creating a new instance boot disk, one of
            initializeParams.sourceImage or
            initializeParams.sourceSnapshot or disks.source
            is required. To create a disk with one of the
            public operating system images, specify the
            image by its family name. For example, specify
            family/debian-9 to use the latest Debian 9
            image:
            projects/debian-cloud/global/images/family/debian-9
            Alternatively, use a specific version of a
            public operating system image:
            projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
            To create a disk with a custom image that you
            created, specify the image name in the following
            format: global/images/my-custom-image You can
            also specify a custom image by its image family,
            which returns the latest version of the image in
            that family. Replace the image name with
            family/family-name:
            global/images/family/my-image-family If the
            source image is deleted later, this field will
            not be set.

            This field is a member of `oneof`_ ``_source_image``.
        source_image_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source image. Required if the source image is
            protected by a customer-supplied encryption key.
            InstanceTemplate and InstancePropertiesPatch do
            not store customer-supplied encryption keys, so
            you cannot create disks for instances in a
            managed instance group if the source images are
            encrypted with your own keys.

            This field is a member of `oneof`_ ``_source_image_encryption_key``.
        source_instant_snapshot (str):
            The source instant-snapshot to create this
            disk. When creating a new instance boot disk,
            one of initializeParams.sourceSnapshot or
            initializeParams.sourceInstantSnapshot
            initializeParams.sourceImage or disks.source is
            required. To create a disk with a snapshot that
            you created, specify the snapshot name in the
            following format:
            us-central1-a/instantSnapshots/my-backup If the
            source instant-snapshot is deleted later, this
            field will not be set.

            This field is a member of `oneof`_ ``_source_instant_snapshot``.
        source_snapshot (str):
            The source snapshot to create this disk. When
            creating a new instance boot disk, one of
            initializeParams.sourceSnapshot or
            initializeParams.sourceImage or disks.source is
            required. To create a disk with a snapshot that
            you created, specify the snapshot name in the
            following format: global/snapshots/my-backup If
            the source snapshot is deleted later, this field
            will not be set. 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.

            This field is a member of `oneof`_ ``_source_snapshot``.
        source_snapshot_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source snapshot.

            This field is a member of `oneof`_ ``_source_snapshot_encryption_key``.
        storage_pool (str):
            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

            This field is a member of `oneof`_ ``_storage_pool``.
    """

    class Architecture(proto.Enum):
        r"""The architecture of the attached disk. Valid values are arm64 or
        x86_64.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    class OnUpdateAction(proto.Enum):
        r"""Specifies which action to take on instance update with this
        disk. Default is to use the existing disk.

        Values:
            UNDEFINED_ON_UPDATE_ACTION (0):
                A value indicating that the enum field is not
                set.
            RECREATE_DISK (494767853):
                Always recreate the disk.
            RECREATE_DISK_IF_SOURCE_CHANGED (398099712):
                Recreate the disk if source (image, snapshot)
                of this disk is different from source of
                existing disk.
            USE_EXISTING_DISK (232682233):
                Use the existing disk, this is the default
                behaviour.
        """
        UNDEFINED_ON_UPDATE_ACTION = 0
        RECREATE_DISK = 494767853
        RECREATE_DISK_IF_SOURCE_CHANGED = 398099712
        USE_EXISTING_DISK = 232682233

    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disk_name: str = proto.Field(
        proto.STRING,
        number=92807149,
        optional=True,
    )
    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )
    disk_type: str = proto.Field(
        proto.STRING,
        number=93009052,
        optional=True,
    )
    enable_confidential_compute: bool = proto.Field(
        proto.BOOL,
        number=102135228,
        optional=True,
    )
    guest_os_features: MutableSequence["GuestOsFeature"] = proto.RepeatedField(
        proto.MESSAGE,
        number=79294545,
        message="GuestOsFeature",
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337642578,
    )
    multi_writer: bool = proto.Field(
        proto.BOOL,
        number=528165433,
        optional=True,
    )
    on_update_action: str = proto.Field(
        proto.STRING,
        number=202451980,
        optional=True,
    )
    provisioned_iops: int = proto.Field(
        proto.INT64,
        number=186769108,
        optional=True,
    )
    provisioned_throughput: int = proto.Field(
        proto.INT64,
        number=526524181,
        optional=True,
    )
    replica_zones: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=48438272,
    )
    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )
    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )
    source_image: str = proto.Field(
        proto.STRING,
        number=50443319,
        optional=True,
    )
    source_image_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=381503659,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_instant_snapshot: str = proto.Field(
        proto.STRING,
        number=219202054,
        optional=True,
    )
    source_snapshot: str = proto.Field(
        proto.STRING,
        number=126061928,
        optional=True,
    )
    source_snapshot_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=303679322,
        optional=True,
        message="CustomerEncryptionKey",
    )
    storage_pool: str = proto.Field(
        proto.STRING,
        number=360473440,
        optional=True,
    )


class AuditConfig(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        audit_log_configs (MutableSequence[google.cloud.compute_v1beta.types.AuditLogConfig]):
            The configuration for logging of each type of
            permission.
        exempted_members (MutableSequence[str]):

        service (str):
            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.

            This field is a member of `oneof`_ ``_service``.
    """

    audit_log_configs: MutableSequence["AuditLogConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=488420626,
        message="AuditLogConfig",
    )
    exempted_members: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=232615576,
    )
    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )


class AuditLogConfig(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        exempted_members (MutableSequence[str]):
            Specifies the identities that do not cause
            logging for this type of permission. Follows the
            same format of Binding.members.
        ignore_child_exemptions (bool):

            This field is a member of `oneof`_ ``_ignore_child_exemptions``.
        log_type (str):
            The log type that this config enables.
            Check the LogType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_log_type``.
    """

    class LogType(proto.Enum):
        r"""The log type that this config enables.

        Values:
            UNDEFINED_LOG_TYPE (0):
                A value indicating that the enum field is not
                set.
            ADMIN_READ (128951462):
                Admin reads. Example: CloudIAM getIamPolicy
            DATA_READ (305224971):
                Data reads. Example: CloudSQL Users list
            DATA_WRITE (340181738):
                Data writes. Example: CloudSQL Users create
            LOG_TYPE_UNSPECIFIED (154527053):
                Default case. Should never be this.
        """
        UNDEFINED_LOG_TYPE = 0
        ADMIN_READ = 128951462
        DATA_READ = 305224971
        DATA_WRITE = 340181738
        LOG_TYPE_UNSPECIFIED = 154527053

    exempted_members: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=232615576,
    )
    ignore_child_exemptions: bool = proto.Field(
        proto.BOOL,
        number=70141850,
        optional=True,
    )
    log_type: str = proto.Field(
        proto.STRING,
        number=403115861,
        optional=True,
    )


class Autoscaler(proto.Message):
    r"""Represents an Autoscaler resource. Google Compute Engine has two
    Autoscaler resources: \*
    `Zonal </compute/docs/reference/rest/beta/autoscalers>`__ \*
    `Regional </compute/docs/reference/rest/beta/regionAutoscalers>`__
    Use autoscalers to automatically add or delete instances from a
    managed instance group according to your defined autoscaling policy.
    For more information, read Autoscaling Groups of Instances. For
    zonal managed instance groups resource, use the autoscaler resource.
    For regional managed instance groups, use the regionAutoscalers
    resource.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaling_policy (google.cloud.compute_v1beta.types.AutoscalingPolicy):
            The configuration parameters for the
            autoscaling algorithm. You can define one or
            more signals for an autoscaler: cpuUtilization,
            customMetricUtilizations, and
            loadBalancingUtilization. If none of these are
            specified, the default will be to autoscale
            based on cpuUtilization to 0.6 or 60%.

            This field is a member of `oneof`_ ``_autoscaling_policy``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#autoscaler for autoscalers.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        recommended_size (int):
            [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.

            This field is a member of `oneof`_ ``_recommended_size``.
        region (str):
            [Output Only] URL of the region where the instance group
            resides (for autoscalers living in regional scope).

            This field is a member of `oneof`_ ``_region``.
        scaling_schedule_status (MutableMapping[str, google.cloud.compute_v1beta.types.ScalingScheduleStatus]):
            [Output Only] Status information of existing scaling
            schedules.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [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. Check the Status enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_status``.
        status_details (MutableSequence[google.cloud.compute_v1beta.types.AutoscalerStatusDetails]):
            [Output Only] Human-readable details about the current state
            of the autoscaler. Read the documentation for Commonly
            returned status messages for examples of status messages you
            might encounter.
        target (str):
            URL of the managed instance group that this
            autoscaler will scale. This field is required
            when creating an autoscaler.

            This field is a member of `oneof`_ ``_target``.
        zone (str):
            [Output Only] URL of the zone where the instance group
            resides (for autoscalers living in zonal scope).

            This field is a member of `oneof`_ ``_zone``.
    """

    class Status(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                Configuration is acknowledged to be effective
            DELETING (528602024):
                Configuration is being deleted
            ERROR (66247144):
                Configuration has errors. Actionable for
                users.
            PENDING (35394935):
                Autoscaler backend hasn't read new/updated
                configuration
        """
        UNDEFINED_STATUS = 0
        ACTIVE = 314733318
        DELETING = 528602024
        ERROR = 66247144
        PENDING = 35394935

    autoscaling_policy: "AutoscalingPolicy" = proto.Field(
        proto.MESSAGE,
        number=221950041,
        optional=True,
        message="AutoscalingPolicy",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    recommended_size: int = proto.Field(
        proto.INT32,
        number=257915749,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    scaling_schedule_status: MutableMapping[
        str, "ScalingScheduleStatus"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=465950178,
        message="ScalingScheduleStatus",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    status_details: MutableSequence["AutoscalerStatusDetails"] = proto.RepeatedField(
        proto.MESSAGE,
        number=363353845,
        message="AutoscalerStatusDetails",
    )
    target: str = proto.Field(
        proto.STRING,
        number=192835985,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class AutoscalerAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.AutoscalersScopedList]):
            A list of AutoscalersScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#autoscalerAggregatedList for aggregated lists of
            autoscalers.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "AutoscalersScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="AutoscalersScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AutoscalerList(proto.Message):
    r"""Contains a list of Autoscaler resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Autoscaler]):
            A list of Autoscaler resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#autoscalerList for lists of autoscalers.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Autoscaler"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Autoscaler",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AutoscalerStatusDetails(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        message (str):
            The status message.

            This field is a member of `oneof`_ ``_message``.
        type_ (str):
            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. Check the Type
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            ALL_INSTANCES_UNHEALTHY (404965477):
                All instances in the instance group are
                unhealthy (not in RUNNING state).
            BACKEND_SERVICE_DOES_NOT_EXIST (191417626):
                There is no backend service attached to the
                instance group.
            CAPPED_AT_MAX_NUM_REPLICAS (518617):
                Autoscaler recommends a size greater than
                maxNumReplicas.
            CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (328964659):
                The custom metric samples are not exported
                often enough to be a credible base for
                autoscaling.
            CUSTOM_METRIC_INVALID (204430550):
                The custom metric that was specified does not
                exist or does not have the necessary labels.
            MIN_EQUALS_MAX (2821361):
                The minNumReplicas is equal to
                maxNumReplicas. This means the autoscaler cannot
                add or remove instances from the instance group.
            MISSING_CUSTOM_METRIC_DATA_POINTS (94885086):
                The autoscaler did not receive any data from
                the custom metric configured for autoscaling.
            MISSING_LOAD_BALANCING_DATA_POINTS (509858898):
                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 (164169907):
                Autoscaling is turned off. The number of
                instances in the group won't change
                automatically. The autoscaling configuration is
                preserved.
            MODE_ONLY_SCALE_OUT (3840994):
                Autoscaling is in the "Autoscale only scale
                out" mode. Instances in the group will be only
                added.
            MODE_ONLY_UP (100969842):
                Autoscaling is in the "Autoscale only out"
                mode. Instances in the group will be only added.
            MORE_THAN_ONE_BACKEND_SERVICE (151922141):
                The instance group cannot be autoscaled
                because it has more than one backend service
                attached to it.
            NOT_ENOUGH_QUOTA_AVAILABLE (403101631):
                There is insufficient quota for the necessary
                resources, such as CPU or number of instances.
            REGION_RESOURCE_STOCKOUT (528622846):
                Showed only for regional autoscalers: there
                is a resource stockout in the chosen region.
            SCALING_TARGET_DOES_NOT_EXIST (122636699):
                The target to be scaled does not exist.
            SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX (29275586):
                For some scaling schedules
                minRequiredReplicas is greater than
                maxNumReplicas. Autoscaler always recommends at
                most maxNumReplicas instances.
            SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN (398287669):
                For some scaling schedules
                minRequiredReplicas is less than minNumReplicas.
                Autoscaler always recommends at least
                minNumReplicas instances.
            UNKNOWN (433141802):
                No description available.
            UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (330845009):
                Autoscaling does not work with an HTTP/S load
                balancer that has been configured for maxRate.
            ZONE_RESOURCE_STOCKOUT (210200502):
                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.
        """
        UNDEFINED_TYPE = 0
        ALL_INSTANCES_UNHEALTHY = 404965477
        BACKEND_SERVICE_DOES_NOT_EXIST = 191417626
        CAPPED_AT_MAX_NUM_REPLICAS = 518617
        CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE = 328964659
        CUSTOM_METRIC_INVALID = 204430550
        MIN_EQUALS_MAX = 2821361
        MISSING_CUSTOM_METRIC_DATA_POINTS = 94885086
        MISSING_LOAD_BALANCING_DATA_POINTS = 509858898
        MODE_OFF = 164169907
        MODE_ONLY_SCALE_OUT = 3840994
        MODE_ONLY_UP = 100969842
        MORE_THAN_ONE_BACKEND_SERVICE = 151922141
        NOT_ENOUGH_QUOTA_AVAILABLE = 403101631
        REGION_RESOURCE_STOCKOUT = 528622846
        SCALING_TARGET_DOES_NOT_EXIST = 122636699
        SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX = 29275586
        SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN = 398287669
        UNKNOWN = 433141802
        UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION = 330845009
        ZONE_RESOURCE_STOCKOUT = 210200502

    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class AutoscalersScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscalers (MutableSequence[google.cloud.compute_v1beta.types.Autoscaler]):
            [Output Only] A list of autoscalers contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of autoscalers when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    autoscalers: MutableSequence["Autoscaler"] = proto.RepeatedField(
        proto.MESSAGE,
        number=465771644,
        message="Autoscaler",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class AutoscalingPolicy(proto.Message):
    r"""Cloud Autoscaler policy.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cool_down_period_sec (int):
            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.

            This field is a member of `oneof`_ ``_cool_down_period_sec``.
        cpu_utilization (google.cloud.compute_v1beta.types.AutoscalingPolicyCpuUtilization):
            Defines the CPU utilization policy that
            allows the autoscaler to scale based on the
            average CPU utilization of a managed instance
            group.

            This field is a member of `oneof`_ ``_cpu_utilization``.
        custom_metric_utilizations (MutableSequence[google.cloud.compute_v1beta.types.AutoscalingPolicyCustomMetricUtilization]):
            Configuration parameters of autoscaling based
            on a custom metric.
        load_balancing_utilization (google.cloud.compute_v1beta.types.AutoscalingPolicyLoadBalancingUtilization):
            Configuration parameters of autoscaling based
            on load balancer.

            This field is a member of `oneof`_ ``_load_balancing_utilization``.
        max_num_replicas (int):
            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.

            This field is a member of `oneof`_ ``_max_num_replicas``.
        min_num_replicas (int):
            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.

            This field is a member of `oneof`_ ``_min_num_replicas``.
        mode (str):
            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"
            Check the Mode enum for the list of possible values.

            This field is a member of `oneof`_ ``_mode``.
        scale_down_control (google.cloud.compute_v1beta.types.AutoscalingPolicyScaleDownControl):

            This field is a member of `oneof`_ ``_scale_down_control``.
        scale_in_control (google.cloud.compute_v1beta.types.AutoscalingPolicyScaleInControl):

            This field is a member of `oneof`_ ``_scale_in_control``.
        scaling_schedules (MutableMapping[str, google.cloud.compute_v1beta.types.AutoscalingPolicyScalingSchedule]):
            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.
    """

    class Mode(proto.Enum):
        r"""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"

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            OFF (78159):
                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 (2527):
                Automatically scale the MIG in and out
                according to the policy.
            ONLY_SCALE_OUT (152713670):
                Automatically create VMs according to the
                policy, but do not scale the MIG in.
            ONLY_UP (478095374):
                Automatically create VMs according to the
                policy, but do not scale the MIG in.
        """
        UNDEFINED_MODE = 0
        OFF = 78159
        ON = 2527
        ONLY_SCALE_OUT = 152713670
        ONLY_UP = 478095374

    cool_down_period_sec: int = proto.Field(
        proto.INT32,
        number=107692954,
        optional=True,
    )
    cpu_utilization: "AutoscalingPolicyCpuUtilization" = proto.Field(
        proto.MESSAGE,
        number=381211147,
        optional=True,
        message="AutoscalingPolicyCpuUtilization",
    )
    custom_metric_utilizations: MutableSequence[
        "AutoscalingPolicyCustomMetricUtilization"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=131972850,
        message="AutoscalingPolicyCustomMetricUtilization",
    )
    load_balancing_utilization: "AutoscalingPolicyLoadBalancingUtilization" = (
        proto.Field(
            proto.MESSAGE,
            number=429746403,
            optional=True,
            message="AutoscalingPolicyLoadBalancingUtilization",
        )
    )
    max_num_replicas: int = proto.Field(
        proto.INT32,
        number=62327375,
        optional=True,
    )
    min_num_replicas: int = proto.Field(
        proto.INT32,
        number=535329825,
        optional=True,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )
    scale_down_control: "AutoscalingPolicyScaleDownControl" = proto.Field(
        proto.MESSAGE,
        number=412071829,
        optional=True,
        message="AutoscalingPolicyScaleDownControl",
    )
    scale_in_control: "AutoscalingPolicyScaleInControl" = proto.Field(
        proto.MESSAGE,
        number=527670872,
        optional=True,
        message="AutoscalingPolicyScaleInControl",
    )
    scaling_schedules: MutableMapping[
        str, "AutoscalingPolicyScalingSchedule"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=355416580,
        message="AutoscalingPolicyScalingSchedule",
    )


class AutoscalingPolicyCpuUtilization(proto.Message):
    r"""CPU utilization policy.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        predictive_method (str):
            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. Check the
            PredictiveMethod enum for the list of possible values.

            This field is a member of `oneof`_ ``_predictive_method``.
        utilization_target (float):
            The target CPU utilization that the autoscaler maintains.
            Must be a float value in the range (0, 1]. If not specified,
            the default is 0.6. If the CPU level is below the target
            utilization, the autoscaler scales in the number of
            instances until it reaches the minimum number of instances
            you specified or until the average CPU of your instances
            reaches the target utilization. If the average CPU is above
            the target utilization, the autoscaler scales out until it
            reaches the maximum number of instances you specified or
            until the average utilization reaches the target
            utilization.

            This field is a member of `oneof`_ ``_utilization_target``.
    """

    class PredictiveMethod(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_PREDICTIVE_METHOD (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No predictive method is used. The autoscaler
                scales the group to meet current demand based on
                real-time metrics
            OPTIMIZE_AVAILABILITY (11629437):
                Predictive autoscaling improves availability
                by monitoring daily and weekly load patterns and
                scaling out ahead of anticipated demand.
            PREDICTIVE_METHOD_UNSPECIFIED (52410265):
                No description available.
        """
        UNDEFINED_PREDICTIVE_METHOD = 0
        NONE = 2402104
        OPTIMIZE_AVAILABILITY = 11629437
        PREDICTIVE_METHOD_UNSPECIFIED = 52410265

    predictive_method: str = proto.Field(
        proto.STRING,
        number=390220737,
        optional=True,
    )
    utilization_target: float = proto.Field(
        proto.DOUBLE,
        number=215905870,
        optional=True,
    )


class AutoscalingPolicyCustomMetricUtilization(proto.Message):
    r"""Custom utilization metric policy.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter string, compatible with a Stackdriver Monitoring
            filter string for TimeSeries.list API call. This filter is
            used to select a specific TimeSeries for the purpose of
            autoscaling and to determine whether the metric is exporting
            per-instance or per-group data. For the filter to be valid
            for autoscaling purposes, the following rules apply: - You
            can only use the AND operator for joining selectors. - You
            can only use direct equality comparison operator (=) without
            any functions for each selector. - You can specify the
            metric in both the filter string and in the metric field.
            However, if specified in both places, the metric must be
            identical. - The monitored resource type determines what
            kind of values are expected for the metric. If it is a
            gce_instance, the autoscaler expects the metric to include a
            separate TimeSeries for each instance in a group. In such a
            case, you cannot filter on resource labels. If the resource
            type is any other value, the autoscaler expects this metric
            to contain values that apply to the entire autoscaled
            instance group and resource label filtering can be performed
            to point autoscaler at the correct TimeSeries to scale upon.
            This is called a *per-group metric* for the purpose of
            autoscaling. If not specified, the type defaults to
            gce_instance. Try to provide a filter that is selective
            enough to pick just one TimeSeries for the autoscaled group
            or for each of the instances (if you are using gce_instance
            resource type). If multiple TimeSeries are returned upon the
            query execution, the autoscaler will sum their respective
            values to obtain its scaling value.

            This field is a member of `oneof`_ ``_filter``.
        metric (str):
            The identifier (type) of the Stackdriver
            Monitoring metric. The metric cannot have
            negative values. The metric must have a value
            type of INT64 or DOUBLE.

            This field is a member of `oneof`_ ``_metric``.
        single_instance_assignment (float):
            If scaling is based on a per-group metric value that
            represents the total amount of work to be done or resource
            usage, set this value to an amount assigned for a single
            instance of the scaled group. Autoscaler keeps the number of
            instances proportional to the value of this metric. The
            metric itself does not change value due to group resizing. A
            good metric to use with the target is for example
            pubsub.googleapis.com/subscription/num_undelivered_messages
            or a custom metric exporting the total number of requests
            coming to your instances. A bad example would be a metric
            exporting an average or median latency, since this value
            can't include a chunk assignable to a single instance, it
            could be better used with utilization_target instead.

            This field is a member of `oneof`_ ``_single_instance_assignment``.
        utilization_target (float):
            The target value of the metric that autoscaler maintains.
            This must be a positive value. A utilization metric scales
            number of virtual machines handling requests to increase or
            decrease proportionally to the metric. For example, a good
            metric to use as a utilization_target is
            https://www.googleapis.com/compute/v1/instance/network/received_bytes_count.
            The autoscaler works to keep this value constant for each of
            the instances.

            This field is a member of `oneof`_ ``_utilization_target``.
        utilization_target_type (str):
            Defines how target utilization value is expressed for a
            Stackdriver Monitoring metric. Either GAUGE,
            DELTA_PER_SECOND, or DELTA_PER_MINUTE. Check the
            UtilizationTargetType enum for the list of possible values.

            This field is a member of `oneof`_ ``_utilization_target_type``.
    """

    class UtilizationTargetType(proto.Enum):
        r"""Defines how target utilization value is expressed for a Stackdriver
        Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or
        DELTA_PER_MINUTE.

        Values:
            UNDEFINED_UTILIZATION_TARGET_TYPE (0):
                A value indicating that the enum field is not
                set.
            DELTA_PER_MINUTE (87432861):
                Sets the utilization target value for a
                cumulative or delta metric, expressed as the
                rate of growth per minute.
            DELTA_PER_SECOND (255180029):
                Sets the utilization target value for a
                cumulative or delta metric, expressed as the
                rate of growth per second.
            GAUGE (67590361):
                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.
        """
        UNDEFINED_UTILIZATION_TARGET_TYPE = 0
        DELTA_PER_MINUTE = 87432861
        DELTA_PER_SECOND = 255180029
        GAUGE = 67590361

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    metric: str = proto.Field(
        proto.STRING,
        number=533067184,
        optional=True,
    )
    single_instance_assignment: float = proto.Field(
        proto.DOUBLE,
        number=504768064,
        optional=True,
    )
    utilization_target: float = proto.Field(
        proto.DOUBLE,
        number=215905870,
        optional=True,
    )
    utilization_target_type: str = proto.Field(
        proto.STRING,
        number=340169355,
        optional=True,
    )


class AutoscalingPolicyLoadBalancingUtilization(proto.Message):
    r"""Configuration parameters of autoscaling based on load
    balancing.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        utilization_target (float):
            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.

            This field is a member of `oneof`_ ``_utilization_target``.
    """

    utilization_target: float = proto.Field(
        proto.DOUBLE,
        number=215905870,
        optional=True,
    )


class AutoscalingPolicyScaleDownControl(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_scaled_down_replicas (google.cloud.compute_v1beta.types.FixedOrPercent):
            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.

            This field is a member of `oneof`_ ``_max_scaled_down_replicas``.
        time_window_sec (int):
            How far back autoscaling looks when computing
            recommendations to include directives regarding
            slower scale in, as described above.

            This field is a member of `oneof`_ ``_time_window_sec``.
    """

    max_scaled_down_replicas: "FixedOrPercent" = proto.Field(
        proto.MESSAGE,
        number=47461006,
        optional=True,
        message="FixedOrPercent",
    )
    time_window_sec: int = proto.Field(
        proto.INT32,
        number=36405300,
        optional=True,
    )


class AutoscalingPolicyScaleInControl(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_scaled_in_replicas (google.cloud.compute_v1beta.types.FixedOrPercent):
            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.

            This field is a member of `oneof`_ ``_max_scaled_in_replicas``.
        time_window_sec (int):
            How far back autoscaling looks when computing
            recommendations to include directives regarding
            slower scale in, as described above.

            This field is a member of `oneof`_ ``_time_window_sec``.
    """

    max_scaled_in_replicas: "FixedOrPercent" = proto.Field(
        proto.MESSAGE,
        number=180710123,
        optional=True,
        message="FixedOrPercent",
    )
    time_window_sec: int = proto.Field(
        proto.INT32,
        number=36405300,
        optional=True,
    )


class AutoscalingPolicyScalingSchedule(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            A description of a scaling schedule.

            This field is a member of `oneof`_ ``_description``.
        disabled (bool):
            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.

            This field is a member of `oneof`_ ``_disabled``.
        duration_sec (int):
            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.

            This field is a member of `oneof`_ ``_duration_sec``.
        min_required_replicas (int):
            The minimum number of VM instances that the
            autoscaler will recommend in time intervals
            starting according to schedule. This field is
            required.

            This field is a member of `oneof`_ ``_min_required_replicas``.
        schedule (str):
            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.

            This field is a member of `oneof`_ ``_schedule``.
        time_zone (str):
            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.

            This field is a member of `oneof`_ ``_time_zone``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disabled: bool = proto.Field(
        proto.BOOL,
        number=270940796,
        optional=True,
    )
    duration_sec: int = proto.Field(
        proto.INT32,
        number=212356902,
        optional=True,
    )
    min_required_replicas: int = proto.Field(
        proto.INT32,
        number=365514414,
        optional=True,
    )
    schedule: str = proto.Field(
        proto.STRING,
        number=375820951,
        optional=True,
    )
    time_zone: str = proto.Field(
        proto.STRING,
        number=36848094,
        optional=True,
    )


class Backend(proto.Message):
    r"""Message containing information of one individual backend.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        balancing_mode (str):
            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.
            Check the BalancingMode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_balancing_mode``.
        capacity_scaler (float):
            A multiplier applied to the backend's target capacity of its
            balancing mode. The default value is 1, which means the
            group serves up to 100% of its configured capacity
            (depending on balancingMode). A setting of 0 means the group
            is completely drained, offering 0% of its available
            capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot
            configure a setting larger than 0 and smaller than 0.1. You
            cannot configure a setting of 0 when there is only one
            backend attached to the backend service. Not available with
            backends that don't support using a balancingMode. This
            includes backends such as global internet NEGs, regional
            serverless NEGs, and PSC NEGs.

            This field is a member of `oneof`_ ``_capacity_scaler``.
        custom_metrics (MutableSequence[google.cloud.compute_v1beta.types.BackendCustomMetric]):
            List of custom metrics that are used for CUSTOM_METRICS
            BalancingMode.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        failover (bool):
            This field designates whether this is a
            failover backend. More than one failover backend
            can be configured for a given BackendService.

            This field is a member of `oneof`_ ``_failover``.
        group (str):
            The fully-qualified URL of an instance group or network
            endpoint group (NEG) resource. To determine what types of
            backends a load balancer supports, see the `Backend services
            overview <https://cloud.google.com/load-balancing/docs/backend-service#backends>`__.
            You must use the *fully-qualified* URL (starting with
            https://www.googleapis.com/) to specify the instance group
            or NEG. Partial URLs are not supported. If haPolicy is
            specified, backends must refer to NEG resources of type
            GCE_VM_IP.

            This field is a member of `oneof`_ ``_group``.
        max_connections (int):
            Defines a target maximum number of
            simultaneous connections. For usage guidelines,
            see Connection balancing mode and Utilization
            balancing mode. Not available if the backend's
            balancingMode is RATE.

            This field is a member of `oneof`_ ``_max_connections``.
        max_connections_per_endpoint (int):
            Defines a target maximum number of
            simultaneous connections. For usage guidelines,
            see Connection balancing mode and Utilization
            balancing mode. Not available if the backend's
            balancingMode is RATE.

            This field is a member of `oneof`_ ``_max_connections_per_endpoint``.
        max_connections_per_instance (int):
            Defines a target maximum number of
            simultaneous connections. For usage guidelines,
            see Connection balancing mode and Utilization
            balancing mode. Not available if the backend's
            balancingMode is RATE.

            This field is a member of `oneof`_ ``_max_connections_per_instance``.
        max_rate (int):
            Defines a maximum number of HTTP requests per
            second (RPS). For usage guidelines, see Rate
            balancing mode and Utilization balancing mode.
            Not available if the backend's balancingMode is
            CONNECTION.

            This field is a member of `oneof`_ ``_max_rate``.
        max_rate_per_endpoint (float):
            Defines a maximum target for requests per
            second (RPS). For usage guidelines, see Rate
            balancing mode and Utilization balancing mode.
            Not available if the backend's balancingMode is
            CONNECTION.

            This field is a member of `oneof`_ ``_max_rate_per_endpoint``.
        max_rate_per_instance (float):
            Defines a maximum target for requests per
            second (RPS). For usage guidelines, see Rate
            balancing mode and Utilization balancing mode.
            Not available if the backend's balancingMode is
            CONNECTION.

            This field is a member of `oneof`_ ``_max_rate_per_instance``.
        max_utilization (float):
            Optional parameter to define a target capacity for the
            UTILIZATION balancing mode. The valid range is [0.0, 1.0].
            For usage guidelines, see Utilization balancing mode.

            This field is a member of `oneof`_ ``_max_utilization``.
        preference (str):
            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
            Check the Preference enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_preference``.
    """

    class BalancingMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_BALANCING_MODE (0):
                A value indicating that the enum field is not
                set.
            CONNECTION (246311646):
                Balance based on the number of simultaneous
                connections.
            CUSTOM_METRICS (331575765):
                Based on custom defined and reported metrics.
            RATE (2508000):
                Balance based on requests per second (RPS).
            UTILIZATION (157008386):
                Balance based on the backend utilization.
        """
        UNDEFINED_BALANCING_MODE = 0
        CONNECTION = 246311646
        CUSTOM_METRICS = 331575765
        RATE = 2508000
        UTILIZATION = 157008386

    class Preference(proto.Enum):
        r"""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

        Values:
            UNDEFINED_PREFERENCE (0):
                A value indicating that the enum field is not
                set.
            DEFAULT (115302945):
                No preference.
            PREFERENCE_UNSPECIFIED (496219571):
                If preference is unspecified, we set it to
                the DEFAULT value
            PREFERRED (418847841):
                Traffic will be sent to this backend first.
        """
        UNDEFINED_PREFERENCE = 0
        DEFAULT = 115302945
        PREFERENCE_UNSPECIFIED = 496219571
        PREFERRED = 418847841

    balancing_mode: str = proto.Field(
        proto.STRING,
        number=430286217,
        optional=True,
    )
    capacity_scaler: float = proto.Field(
        proto.FLOAT,
        number=315958157,
        optional=True,
    )
    custom_metrics: MutableSequence["BackendCustomMetric"] = proto.RepeatedField(
        proto.MESSAGE,
        number=429453813,
        message="BackendCustomMetric",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    failover: bool = proto.Field(
        proto.BOOL,
        number=138892530,
        optional=True,
    )
    group: str = proto.Field(
        proto.STRING,
        number=98629247,
        optional=True,
    )
    max_connections: int = proto.Field(
        proto.INT32,
        number=110652154,
        optional=True,
    )
    max_connections_per_endpoint: int = proto.Field(
        proto.INT32,
        number=216904604,
        optional=True,
    )
    max_connections_per_instance: int = proto.Field(
        proto.INT32,
        number=104671900,
        optional=True,
    )
    max_rate: int = proto.Field(
        proto.INT32,
        number=408035035,
        optional=True,
    )
    max_rate_per_endpoint: float = proto.Field(
        proto.FLOAT,
        number=129832283,
        optional=True,
    )
    max_rate_per_instance: float = proto.Field(
        proto.FLOAT,
        number=17599579,
        optional=True,
    )
    max_utilization: float = proto.Field(
        proto.FLOAT,
        number=148192199,
        optional=True,
    )
    preference: str = proto.Field(
        proto.STRING,
        number=150781147,
        optional=True,
    )


class BackendBucket(proto.Message):
    r"""Represents a Cloud Storage Bucket resource. This Cloud
    Storage bucket resource is referenced by a URL map of a load
    balancer. For more information, read Backend Buckets.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bucket_name (str):
            Cloud Storage bucket name.

            This field is a member of `oneof`_ ``_bucket_name``.
        cdn_policy (google.cloud.compute_v1beta.types.BackendBucketCdnPolicy):
            Cloud CDN configuration for this
            BackendBucket.

            This field is a member of `oneof`_ ``_cdn_policy``.
        compression_mode (str):
            Compress text responses using Brotli or gzip
            compression, based on the client's
            Accept-Encoding header. Check the
            CompressionMode enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_compression_mode``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        custom_response_headers (MutableSequence[str]):
            Headers that the Application Load Balancer
            should add to proxied responses.
        description (str):
            An optional textual description of the
            resource; provided by the client when the
            resource is created.

            This field is a member of `oneof`_ ``_description``.
        edge_security_policy (str):
            [Output Only] The resource URL for the edge security policy
            associated with this backend bucket.

            This field is a member of `oneof`_ ``_edge_security_policy``.
        enable_cdn (bool):
            If true, enable Cloud CDN for this
            BackendBucket.

            This field is a member of `oneof`_ ``_enable_cdn``.
        id (int):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            Type of the resource.

            This field is a member of `oneof`_ ``_kind``.
        load_balancing_scheme (str):
            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. Check the
            LoadBalancingScheme enum for the list of possible values.

            This field is a member of `oneof`_ ``_load_balancing_scheme``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        used_by (MutableSequence[google.cloud.compute_v1beta.types.BackendBucketUsedBy]):
            [Output Only] List of resources referencing that backend
            bucket.
    """

    class CompressionMode(proto.Enum):
        r"""Compress text responses using Brotli or gzip compression,
        based on the client's Accept-Encoding header.

        Values:
            UNDEFINED_COMPRESSION_MODE (0):
                A value indicating that the enum field is not
                set.
            AUTOMATIC (165298699):
                Automatically uses the best compression based
                on the Accept-Encoding header sent by the
                client.
            DISABLED (516696700):
                Disables compression. Existing compressed
                responses cached by Cloud CDN will not be served
                to clients.
        """
        UNDEFINED_COMPRESSION_MODE = 0
        AUTOMATIC = 165298699
        DISABLED = 516696700

    class LoadBalancingScheme(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_LOAD_BALANCING_SCHEME (0):
                A value indicating that the enum field is not
                set.
            INTERNAL_MANAGED (37350397):
                Signifies that this will be used for internal
                Application Load Balancers.
        """
        UNDEFINED_LOAD_BALANCING_SCHEME = 0
        INTERNAL_MANAGED = 37350397

    bucket_name: str = proto.Field(
        proto.STRING,
        number=283610048,
        optional=True,
    )
    cdn_policy: "BackendBucketCdnPolicy" = proto.Field(
        proto.MESSAGE,
        number=213976452,
        optional=True,
        message="BackendBucketCdnPolicy",
    )
    compression_mode: str = proto.Field(
        proto.STRING,
        number=95520988,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    custom_response_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=387539094,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    edge_security_policy: str = proto.Field(
        proto.STRING,
        number=41036943,
        optional=True,
    )
    enable_cdn: bool = proto.Field(
        proto.BOOL,
        number=282942321,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    load_balancing_scheme: str = proto.Field(
        proto.STRING,
        number=363890244,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    used_by: MutableSequence["BackendBucketUsedBy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=389320729,
        message="BackendBucketUsedBy",
    )


class BackendBucketCdnPolicy(proto.Message):
    r"""Message containing Cloud CDN configuration for a backend
    bucket.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bypass_cache_on_request_headers (MutableSequence[google.cloud.compute_v1beta.types.BackendBucketCdnPolicyBypassCacheOnRequestHeader]):
            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.
        cache_key_policy (google.cloud.compute_v1beta.types.BackendBucketCdnPolicyCacheKeyPolicy):
            The CacheKeyPolicy for this CdnPolicy.

            This field is a member of `oneof`_ ``_cache_key_policy``.
        cache_mode (str):
            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. Check
            the CacheMode enum for the list of possible values.

            This field is a member of `oneof`_ ``_cache_mode``.
        client_ttl (int):
            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).

            This field is a member of `oneof`_ ``_client_ttl``.
        default_ttl (int):
            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.

            This field is a member of `oneof`_ ``_default_ttl``.
        max_ttl (int):
            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.

            This field is a member of `oneof`_ ``_max_ttl``.
        negative_caching (bool):
            Negative caching allows per-status code TTLs to be set, in
            order to apply fine-grained caching for common errors or
            redirects. This can reduce the load on your origin and
            improve end-user experience by reducing response latency.
            When the cache mode is set to CACHE_ALL_STATIC or
            USE_ORIGIN_HEADERS, negative caching applies to responses
            with the specified response code that lack any
            Cache-Control, Expires, or Pragma: no-cache directives. When
            the cache mode is set to FORCE_CACHE_ALL, negative caching
            applies to all responses with the specified response code,
            and override any caching headers. By default, Cloud CDN will
            apply the following default TTLs to these status codes: HTTP
            300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
            HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal
            Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected
            Request), 501 (Not Implemented): 60s. These defaults can be
            overridden in negative_caching_policy.

            This field is a member of `oneof`_ ``_negative_caching``.
        negative_caching_policy (MutableSequence[google.cloud.compute_v1beta.types.BackendBucketCdnPolicyNegativeCachingPolicy]):
            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.
        request_coalescing (bool):
            If true then Cloud CDN will combine multiple
            concurrent cache fill requests into a small
            number of requests to the origin.

            This field is a member of `oneof`_ ``_request_coalescing``.
        serve_while_stale (int):
            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.

            This field is a member of `oneof`_ ``_serve_while_stale``.
        signed_url_cache_max_age_sec (int):
            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.

            This field is a member of `oneof`_ ``_signed_url_cache_max_age_sec``.
        signed_url_key_names (MutableSequence[str]):
            [Output Only] Names of the keys for signing request URLs.
    """

    class CacheMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_CACHE_MODE (0):
                A value indicating that the enum field is not
                set.
            CACHE_ALL_STATIC (355027945):
                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 (486026928):
                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 (381295560):
                No description available.
            USE_ORIGIN_HEADERS (55380261):
                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.
        """
        UNDEFINED_CACHE_MODE = 0
        CACHE_ALL_STATIC = 355027945
        FORCE_CACHE_ALL = 486026928
        INVALID_CACHE_MODE = 381295560
        USE_ORIGIN_HEADERS = 55380261

    bypass_cache_on_request_headers: MutableSequence[
        "BackendBucketCdnPolicyBypassCacheOnRequestHeader"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=486203082,
        message="BackendBucketCdnPolicyBypassCacheOnRequestHeader",
    )
    cache_key_policy: "BackendBucketCdnPolicyCacheKeyPolicy" = proto.Field(
        proto.MESSAGE,
        number=159263727,
        optional=True,
        message="BackendBucketCdnPolicyCacheKeyPolicy",
    )
    cache_mode: str = proto.Field(
        proto.STRING,
        number=28877888,
        optional=True,
    )
    client_ttl: int = proto.Field(
        proto.INT32,
        number=29034360,
        optional=True,
    )
    default_ttl: int = proto.Field(
        proto.INT32,
        number=100253422,
        optional=True,
    )
    max_ttl: int = proto.Field(
        proto.INT32,
        number=307578001,
        optional=True,
    )
    negative_caching: bool = proto.Field(
        proto.BOOL,
        number=336110005,
        optional=True,
    )
    negative_caching_policy: MutableSequence[
        "BackendBucketCdnPolicyNegativeCachingPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=155359996,
        message="BackendBucketCdnPolicyNegativeCachingPolicy",
    )
    request_coalescing: bool = proto.Field(
        proto.BOOL,
        number=532808276,
        optional=True,
    )
    serve_while_stale: int = proto.Field(
        proto.INT32,
        number=236682203,
        optional=True,
    )
    signed_url_cache_max_age_sec: int = proto.Field(
        proto.INT64,
        number=269374534,
        optional=True,
    )
    signed_url_key_names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=371848885,
    )


class BackendBucketCdnPolicyBypassCacheOnRequestHeader(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        header_name (str):
            The header field name to match on when
            bypassing cache. Values are case-insensitive.

            This field is a member of `oneof`_ ``_header_name``.
    """

    header_name: str = proto.Field(
        proto.STRING,
        number=110223613,
        optional=True,
    )


class BackendBucketCdnPolicyCacheKeyPolicy(proto.Message):
    r"""Message containing what to include in the cache key for a
    request for Cloud CDN.

    Attributes:
        include_http_headers (MutableSequence[str]):
            Allows HTTP request headers (by name) to be
            used in the cache key.
        query_string_whitelist (MutableSequence[str]):
            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.
    """

    include_http_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=2489606,
    )
    query_string_whitelist: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=52456496,
    )


class BackendBucketCdnPolicyNegativeCachingPolicy(proto.Message):
    r"""Specify CDN TTLs for response error codes.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (int):
            The HTTP status code to define a TTL against.
            Only HTTP status codes 300, 301, 302, 307, 308,
            404, 405, 410, 421, 451 and 501 are can be
            specified as values, and you cannot specify a
            status code more than once.

            This field is a member of `oneof`_ ``_code``.
        ttl (int):
            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.

            This field is a member of `oneof`_ ``_ttl``.
    """

    code: int = proto.Field(
        proto.INT32,
        number=3059181,
        optional=True,
    )
    ttl: int = proto.Field(
        proto.INT32,
        number=115180,
        optional=True,
    )


class BackendBucketList(proto.Message):
    r"""Contains a list of BackendBucket resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.BackendBucket]):
            A list of BackendBucket resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["BackendBucket"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="BackendBucket",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class BackendBucketListUsable(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.BackendBucket]):
            A list of BackendBucket resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#usableBackendBucketList for lists of usable backend
            buckets.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["BackendBucket"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="BackendBucket",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class BackendBucketUsedBy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        reference (str):
            [Output Only] Server-defined URL for UrlMaps referencing
            that BackendBucket.

            This field is a member of `oneof`_ ``_reference``.
    """

    reference: str = proto.Field(
        proto.STRING,
        number=148586315,
        optional=True,
    )


class BackendCustomMetric(proto.Message):
    r"""Custom Metrics are used for CUSTOM_METRICS balancing_mode.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        dry_run (bool):
            If true, the metric data is collected and
            reported to Cloud Monitoring, but is not used
            for load balancing.

            This field is a member of `oneof`_ ``_dry_run``.
        max_utilization (float):
            Optional parameter to define a target utilization for the
            Custom Metrics balancing mode. The valid range is [0.0,
            1.0].

            This field is a member of `oneof`_ ``_max_utilization``.
        name (str):
            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 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.

            This field is a member of `oneof`_ ``_name``.
    """

    dry_run: bool = proto.Field(
        proto.BOOL,
        number=323854839,
        optional=True,
    )
    max_utilization: float = proto.Field(
        proto.FLOAT,
        number=148192199,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class BackendService(proto.Message):
    r"""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/beta/backendServices>`__
    \*
    `Regional <https://cloud.google.com/compute/docs/reference/rest/beta/regionBackendServices>`__
    For more information, see Backend Services.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        affinity_cookie_ttl_sec (int):
            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.

            This field is a member of `oneof`_ ``_affinity_cookie_ttl_sec``.
        backends (MutableSequence[google.cloud.compute_v1beta.types.Backend]):
            The list of backends that serve this
            BackendService.
        cdn_policy (google.cloud.compute_v1beta.types.BackendServiceCdnPolicy):
            Cloud CDN configuration for this
            BackendService. Only available for specified
            load balancer types.

            This field is a member of `oneof`_ ``_cdn_policy``.
        circuit_breakers (google.cloud.compute_v1beta.types.CircuitBreakers):

            This field is a member of `oneof`_ ``_circuit_breakers``.
        compression_mode (str):
            Compress text responses using Brotli or gzip
            compression, based on the client's
            Accept-Encoding header. Check the
            CompressionMode enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_compression_mode``.
        connection_draining (google.cloud.compute_v1beta.types.ConnectionDraining):
            connectionDraining cannot be specified with
            haPolicy.

            This field is a member of `oneof`_ ``_connection_draining``.
        connection_tracking_policy (google.cloud.compute_v1beta.types.BackendServiceConnectionTrackingPolicy):
            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.

            This field is a member of `oneof`_ ``_connection_tracking_policy``.
        consistent_hash (google.cloud.compute_v1beta.types.ConsistentHashLoadBalancerSettings):
            Consistent Hash-based load balancing can be used to provide
            soft session affinity based on HTTP headers, cookies or
            other properties. This load balancing policy is applicable
            only for HTTP connections. The affinity to a particular
            destination host will be lost when one or more hosts are
            added/removed from the destination service. This field
            specifies parameters that control consistent hashing. This
            field is only applicable when localityLbPolicy is set to
            MAGLEV or RING_HASH. This field is applicable to either: - A
            regional backend service with the service_protocol set to
            HTTP, HTTPS, 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.

            This field is a member of `oneof`_ ``_consistent_hash``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        custom_metrics (MutableSequence[google.cloud.compute_v1beta.types.BackendServiceCustomMetric]):
            List of custom metrics that are used for the
            WEIGHTED_ROUND_ROBIN locality_lb_policy.
        custom_request_headers (MutableSequence[str]):
            Headers that the load balancer adds to proxied requests. See
            `Creating custom
            headers <https://cloud.google.com/load-balancing/docs/custom-headers>`__.
        custom_response_headers (MutableSequence[str]):
            Headers that the load balancer adds to proxied responses.
            See `Creating custom
            headers <https://cloud.google.com/load-balancing/docs/custom-headers>`__.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        dynamic_forwarding (google.cloud.compute_v1beta.types.BackendServiceDynamicForwarding):
            Dynamic forwarding configuration. This field
            is used to configure the backend service with
            dynamic forwarding feature which together with
            Service Extension allows customized and complex
            routing logic.

            This field is a member of `oneof`_ ``_dynamic_forwarding``.
        edge_security_policy (str):
            [Output Only] The resource URL for the edge security policy
            associated with this backend service.

            This field is a member of `oneof`_ ``_edge_security_policy``.
        enable_c_d_n (bool):
            If true, enables Cloud CDN for the backend
            service of a global external Application Load
            Balancer.

            This field is a member of `oneof`_ ``_enable_c_d_n``.
        external_managed_migration_state (str):
            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.
            Check the ExternalManagedMigrationState enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_external_managed_migration_state``.
        external_managed_migration_testing_percentage (float):
            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.

            This field is a member of `oneof`_ ``_external_managed_migration_testing_percentage``.
        failover_policy (google.cloud.compute_v1beta.types.BackendServiceFailoverPolicy):
            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.

            This field is a member of `oneof`_ ``_failover_policy``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        ha_policy (google.cloud.compute_v1beta.types.BackendServiceHAPolicy):
            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.

            This field is a member of `oneof`_ ``_ha_policy``.
        health_checks (MutableSequence[str]):
            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.
        iap (google.cloud.compute_v1beta.types.BackendServiceIAP):
            The configurations for Identity-Aware Proxy
            on this resource. Not available for internal
            passthrough Network Load Balancers and external
            passthrough Network Load Balancers.

            This field is a member of `oneof`_ ``_iap``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        ip_address_selection_policy (str):
            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). Check the IpAddressSelectionPolicy
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_ip_address_selection_policy``.
        kind (str):
            [Output Only] Type of resource. Always
            compute#backendService for backend services.

            This field is a member of `oneof`_ ``_kind``.
        load_balancing_scheme (str):
            Specifies the load balancer type. A backend
            service created for one type of load balancer
            cannot be used with another. For more
            information, refer to Choosing a load balancer.
            Check the LoadBalancingScheme enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_load_balancing_scheme``.
        locality_lb_policies (MutableSequence[google.cloud.compute_v1beta.types.BackendServiceLocalityLoadBalancingPolicyConfig]):
            A list of locality load-balancing policies to be used in
            order of preference. When you use localityLbPolicies, you
            must set at least one value for either the
            localityLbPolicies[].policy or the
            localityLbPolicies[].customPolicy field. localityLbPolicies
            overrides any value set in the localityLbPolicy field. For
            an example of how to use this field, see Define a list of
            preferred policies. Caution: This field and its children are
            intended for use in a service mesh that includes gRPC
            clients only. Envoy proxies can't use backend services that
            have this configuration.
        locality_lb_policy (str):
            The load balancing algorithm used within the scope of the
            locality. The possible values are: - ROUND_ROBIN: This is a
            simple policy in which each healthy backend is selected in
            round robin order. This is the default. - LEAST_REQUEST: An
            O(1) algorithm which selects two random healthy hosts and
            picks the host which has fewer active requests. - RING_HASH:
            The ring/modulo hash load balancer implements consistent
            hashing to backends. The algorithm has the property that the
            addition/removal of a host from a set of N hosts only
            affects 1/N of the requests. - RANDOM: The load balancer
            selects a random healthy host. - ORIGINAL_DESTINATION:
            Backend host is selected based on the client connection
            metadata, i.e., connections are opened to the same address
            as the destination address of the incoming connection before
            the connection was redirected to the load balancer. -
            MAGLEV: used as a drop in replacement for the ring hash load
            balancer. Maglev is not as stable as ring hash but has
            faster table lookup build times and host selection times.
            For more information about Maglev, see
            https://ai.google/research/pubs/pub44824 This field is
            applicable to either: - A regional backend service with the
            service_protocol set to HTTP, HTTPS, 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 is
            MAGLEV. Only ROUND_ROBIN and RING_HASH are supported when
            the backend service is referenced by a URL map that is bound
            to target gRPC proxy that has validateForProxyless field set
            to true. localityLbPolicy cannot be specified with haPolicy.
            Check the LocalityLbPolicy enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_locality_lb_policy``.
        log_config (google.cloud.compute_v1beta.types.BackendServiceLogConfig):
            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.

            This field is a member of `oneof`_ ``_log_config``.
        max_stream_duration (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_max_stream_duration``.
        metadatas (MutableMapping[str, str]):
            Deployment metadata associated with the
            resource to be set by a GKE hub controller and
            read by the backend RCTH
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            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 to INTERNAL, or when the load balancing
            scheme is set to EXTERNAL and haPolicy
            fastIpMove is enabled.

            This field is a member of `oneof`_ ``_network``.
        network_pass_through_lb_traffic_policy (google.cloud.compute_v1beta.types.BackendServiceNetworkPassThroughLbTrafficPolicy):
            Configures traffic steering properties of
            internal passthrough Network Load Balancers.
            networkPassThroughLbTrafficPolicy cannot be
            specified with haPolicy.

            This field is a member of `oneof`_ ``_network_pass_through_lb_traffic_policy``.
        outlier_detection (google.cloud.compute_v1beta.types.OutlierDetection):
            Settings controlling the ejection of unhealthy backend
            endpoints from the load balancing pool of each individual
            proxy instance that processes the traffic for the given
            backend service. If not set, this feature is considered
            disabled. Results of the outlier detection algorithm
            (ejection of endpoints from the load balancing pool and
            returning them back to the pool) are executed independently
            by each proxy instance of the load balancer. In most cases,
            more than one proxy instance handles the traffic received by
            a backend service. Thus, it is possible that an unhealthy
            endpoint is detected and ejected by only some of the
            proxies, and while this happens, other proxies may continue
            to send requests to the same unhealthy endpoint until they
            detect and eject the unhealthy endpoint. Applicable backend
            endpoints can be: - VM instances in an Instance Group -
            Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) -
            Endpoints in a Hybrid Connectivity NEG
            (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to
            Cloud Run, App Engine, or Cloud Functions Services - Private
            Service Connect NEGs, that resolve to Google-managed
            regional API endpoints or managed services published using
            Private Service Connect Applicable backend service types can
            be: - A global backend service with the loadBalancingScheme
            set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A
            regional backend service with the serviceProtocol set to
            HTTP, HTTPS, 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.

            This field is a member of `oneof`_ ``_outlier_detection``.
        port (int):
            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.

            This field is a member of `oneof`_ ``_port``.
        port_name (str):
            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.

            This field is a member of `oneof`_ ``_port_name``.
        protocol (str):
            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. Check the Protocol enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_protocol``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        security_policy (str):
            [Output Only] The resource URL for the security policy
            associated with this backend service.

            This field is a member of `oneof`_ ``_security_policy``.
        security_settings (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_security_settings``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        service_bindings (MutableSequence[str]):
            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.
        service_lb_policy (str):
            URL to networkservices.ServiceLbPolicy resource. Can only be
            set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED,
            INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is
            global.

            This field is a member of `oneof`_ ``_service_lb_policy``.
        session_affinity (str):
            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. Check the
            SessionAffinity enum for the list of possible values.

            This field is a member of `oneof`_ ``_session_affinity``.
        strong_session_affinity_cookie (google.cloud.compute_v1beta.types.BackendServiceHttpCookie):
            Describes the HTTP cookie used for stateful session
            affinity. This field is applicable and required if the
            sessionAffinity is set to STRONG_COOKIE_AFFINITY.

            This field is a member of `oneof`_ ``_strong_session_affinity_cookie``.
        subsetting (google.cloud.compute_v1beta.types.Subsetting):
            subsetting cannot be specified with haPolicy.

            This field is a member of `oneof`_ ``_subsetting``.
        timeout_sec (int):
            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.

            This field is a member of `oneof`_ ``_timeout_sec``.
        tls_settings (google.cloud.compute_v1beta.types.BackendServiceTlsSettings):
            Configuration for Backend Authenticated TLS
            and mTLS. May only be specified when the backend
            protocol is SSL, HTTPS or HTTP2.

            This field is a member of `oneof`_ ``_tls_settings``.
        used_by (MutableSequence[google.cloud.compute_v1beta.types.BackendServiceUsedBy]):
            [Output Only] List of resources referencing given backend
            service.
    """

    class CompressionMode(proto.Enum):
        r"""Compress text responses using Brotli or gzip compression,
        based on the client's Accept-Encoding header.

        Values:
            UNDEFINED_COMPRESSION_MODE (0):
                A value indicating that the enum field is not
                set.
            AUTOMATIC (165298699):
                Automatically uses the best compression based
                on the Accept-Encoding header sent by the
                client.
            DISABLED (516696700):
                Disables compression. Existing compressed
                responses cached by Cloud CDN will not be served
                to clients.
        """
        UNDEFINED_COMPRESSION_MODE = 0
        AUTOMATIC = 165298699
        DISABLED = 516696700

    class ExternalManagedMigrationState(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_EXTERNAL_MANAGED_MIGRATION_STATE (0):
                A value indicating that the enum field is not
                set.
            PREPARE (399612135):
                No description available.
            TEST_ALL_TRAFFIC (79728882):
                No description available.
            TEST_BY_PERCENTAGE (513738389):
                No description available.
        """
        UNDEFINED_EXTERNAL_MANAGED_MIGRATION_STATE = 0
        PREPARE = 399612135
        TEST_ALL_TRAFFIC = 79728882
        TEST_BY_PERCENTAGE = 513738389

    class IpAddressSelectionPolicy(proto.Enum):
        r"""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).

        Values:
            UNDEFINED_IP_ADDRESS_SELECTION_POLICY (0):
                A value indicating that the enum field is not
                set.
            IPV4_ONLY (22373798):
                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 (79632100):
                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 (36210144):
                Unspecified IP address selection policy.
            PREFER_IPV6 (408601302):
                Prioritize the connection to the endpoints
                IPv6 address over its IPv4 address (provided
                there is a healthy IPv6 address).
        """
        UNDEFINED_IP_ADDRESS_SELECTION_POLICY = 0
        IPV4_ONLY = 22373798
        IPV6_ONLY = 79632100
        IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED = 36210144
        PREFER_IPV6 = 408601302

    class LoadBalancingScheme(proto.Enum):
        r"""Specifies the load balancer type. A backend service created
        for one type of load balancer cannot be used with another. For
        more information, refer to Choosing a load balancer.

        Values:
            UNDEFINED_LOAD_BALANCING_SCHEME (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL (35607499):
                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 (512006923):
                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 (279295677):
                Signifies that this will be used for internal
                passthrough Network Load Balancers.
            INTERNAL_MANAGED (37350397):
                Signifies that this will be used for internal
                Application Load Balancers.
            INTERNAL_SELF_MANAGED (236211150):
                Signifies that this will be used by Traffic
                Director.
            INVALID_LOAD_BALANCING_SCHEME (275352060):
                No description available.
        """
        UNDEFINED_LOAD_BALANCING_SCHEME = 0
        EXTERNAL = 35607499
        EXTERNAL_MANAGED = 512006923
        INTERNAL = 279295677
        INTERNAL_MANAGED = 37350397
        INTERNAL_SELF_MANAGED = 236211150
        INVALID_LOAD_BALANCING_SCHEME = 275352060

    class LocalityLbPolicy(proto.Enum):
        r"""The load balancing algorithm used within the scope of the locality.
        The possible values are: - ROUND_ROBIN: This is a simple policy in
        which each healthy backend is selected in round robin order. This is
        the default. - LEAST_REQUEST: An O(1) algorithm which selects two
        random healthy hosts and picks the host which has fewer active
        requests. - RING_HASH: The ring/modulo hash load balancer implements
        consistent hashing to backends. The algorithm has the property that
        the addition/removal of a host from a set of N hosts only affects
        1/N of the requests. - RANDOM: The load balancer selects a random
        healthy host. - ORIGINAL_DESTINATION: Backend host is selected based
        on the client connection metadata, i.e., connections are opened to
        the same address as the destination address of the incoming
        connection before the connection was redirected to the load
        balancer. - MAGLEV: used as a drop in replacement for the ring hash
        load balancer. Maglev is not as stable as ring hash but has faster
        table lookup build times and host selection times. For more
        information about Maglev, see
        https://ai.google/research/pubs/pub44824 This field is applicable to
        either: - A regional backend service with the service_protocol set
        to HTTP, HTTPS, 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 is MAGLEV. Only ROUND_ROBIN and
        RING_HASH are supported when the backend service is referenced by a
        URL map that is bound to target gRPC proxy that has
        validateForProxyless field set to true. localityLbPolicy cannot be
        specified with haPolicy.

        Values:
            UNDEFINED_LOCALITY_LB_POLICY (0):
                A value indicating that the enum field is not
                set.
            INVALID_LB_POLICY (323318707):
                No description available.
            LEAST_REQUEST (46604921):
                An O(1) algorithm which selects two random
                healthy hosts and picks the host which has fewer
                active requests.
            MAGLEV (119180266):
                This algorithm implements consistent hashing
                to backends. Maglev can be used as a drop in
                replacement for the ring hash load balancer.
                Maglev is not as stable as ring hash but has
                faster table lookup build times and host
                selection times. For more information about
                Maglev, see
                https://ai.google/research/pubs/pub44824
            ORIGINAL_DESTINATION (166297216):
                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 (262527171):
                The load balancer selects a random healthy
                host.
            RING_HASH (432795069):
                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 (153895801):
                This is a simple policy in which each healthy
                backend is selected in round robin order. This
                is the default.
            WEIGHTED_MAGLEV (254930962):
                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 (5584977):
                Per-endpoint weighted round-robin Load Balancing using
                weights computed from Backend reported Custom Metrics. If
                set, the Backend Service responses are expected to contain
                non-standard HTTP response header field
                X-Endpoint-Load-Metrics. The reported metrics to use for
                computing the weights are specified via the
                backends[].customMetrics fields.
        """
        UNDEFINED_LOCALITY_LB_POLICY = 0
        INVALID_LB_POLICY = 323318707
        LEAST_REQUEST = 46604921
        MAGLEV = 119180266
        ORIGINAL_DESTINATION = 166297216
        RANDOM = 262527171
        RING_HASH = 432795069
        ROUND_ROBIN = 153895801
        WEIGHTED_MAGLEV = 254930962
        WEIGHTED_ROUND_ROBIN = 5584977

    class Protocol(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_PROTOCOL (0):
                A value indicating that the enum field is not
                set.
            GRPC (2196510):
                gRPC (available for Traffic Director).
            H2C (70809):
                HTTP2 over cleartext
            HTTP (2228360):
                No description available.
            HTTP2 (69079210):
                HTTP/2 with SSL.
            HTTPS (69079243):
                No description available.
            SSL (82412):
                TCP proxying with SSL.
            TCP (82881):
                TCP proxying or TCP pass-through.
            UDP (83873):
                UDP.
            UNSPECIFIED (526786327):
                If a Backend Service has UNSPECIFIED as its
                protocol, it can be used with any L3/L4
                Forwarding Rules.
        """
        UNDEFINED_PROTOCOL = 0
        GRPC = 2196510
        H2C = 70809
        HTTP = 2228360
        HTTP2 = 69079210
        HTTPS = 69079243
        SSL = 82412
        TCP = 82881
        UDP = 83873
        UNSPECIFIED = 526786327

    class SessionAffinity(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SESSION_AFFINITY (0):
                A value indicating that the enum field is not
                set.
            CLIENT_IP (345665051):
                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 (106122516):
                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 (221722926):
                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 (25322148):
                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 (370321204):
                Hash based on a cookie generated by the L7
                loadbalancer. Only valid for HTTP(S) load
                balancing.
            HEADER_FIELD (200737960):
                The hash is based on a user specified header
                field.
            HTTP_COOKIE (494981627):
                The hash is based on a user provided cookie.
            NONE (2402104):
                No session affinity. Connections from the
                same client IP may go to any instance in the
                pool.
            STRONG_COOKIE_AFFINITY (438628091):
                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.
        """
        UNDEFINED_SESSION_AFFINITY = 0
        CLIENT_IP = 345665051
        CLIENT_IP_NO_DESTINATION = 106122516
        CLIENT_IP_PORT_PROTO = 221722926
        CLIENT_IP_PROTO = 25322148
        GENERATED_COOKIE = 370321204
        HEADER_FIELD = 200737960
        HTTP_COOKIE = 494981627
        NONE = 2402104
        STRONG_COOKIE_AFFINITY = 438628091

    affinity_cookie_ttl_sec: int = proto.Field(
        proto.INT32,
        number=369996954,
        optional=True,
    )
    backends: MutableSequence["Backend"] = proto.RepeatedField(
        proto.MESSAGE,
        number=510839903,
        message="Backend",
    )
    cdn_policy: "BackendServiceCdnPolicy" = proto.Field(
        proto.MESSAGE,
        number=213976452,
        optional=True,
        message="BackendServiceCdnPolicy",
    )
    circuit_breakers: "CircuitBreakers" = proto.Field(
        proto.MESSAGE,
        number=421340061,
        optional=True,
        message="CircuitBreakers",
    )
    compression_mode: str = proto.Field(
        proto.STRING,
        number=95520988,
        optional=True,
    )
    connection_draining: "ConnectionDraining" = proto.Field(
        proto.MESSAGE,
        number=461096747,
        optional=True,
        message="ConnectionDraining",
    )
    connection_tracking_policy: "BackendServiceConnectionTrackingPolicy" = proto.Field(
        proto.MESSAGE,
        number=143994969,
        optional=True,
        message="BackendServiceConnectionTrackingPolicy",
    )
    consistent_hash: "ConsistentHashLoadBalancerSettings" = proto.Field(
        proto.MESSAGE,
        number=905883,
        optional=True,
        message="ConsistentHashLoadBalancerSettings",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    custom_metrics: MutableSequence["BackendServiceCustomMetric"] = proto.RepeatedField(
        proto.MESSAGE,
        number=429453813,
        message="BackendServiceCustomMetric",
    )
    custom_request_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=27977992,
    )
    custom_response_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=387539094,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    dynamic_forwarding: "BackendServiceDynamicForwarding" = proto.Field(
        proto.MESSAGE,
        number=719613,
        optional=True,
        message="BackendServiceDynamicForwarding",
    )
    edge_security_policy: str = proto.Field(
        proto.STRING,
        number=41036943,
        optional=True,
    )
    enable_c_d_n: bool = proto.Field(
        proto.BOOL,
        number=250733499,
        optional=True,
    )
    external_managed_migration_state: str = proto.Field(
        proto.STRING,
        number=66947020,
        optional=True,
    )
    external_managed_migration_testing_percentage: float = proto.Field(
        proto.FLOAT,
        number=507232462,
        optional=True,
    )
    failover_policy: "BackendServiceFailoverPolicy" = proto.Field(
        proto.MESSAGE,
        number=105658655,
        optional=True,
        message="BackendServiceFailoverPolicy",
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    ha_policy: "BackendServiceHAPolicy" = proto.Field(
        proto.MESSAGE,
        number=519879480,
        optional=True,
        message="BackendServiceHAPolicy",
    )
    health_checks: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=448370606,
    )
    iap: "BackendServiceIAP" = proto.Field(
        proto.MESSAGE,
        number=104024,
        optional=True,
        message="BackendServiceIAP",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    ip_address_selection_policy: str = proto.Field(
        proto.STRING,
        number=77600840,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    load_balancing_scheme: str = proto.Field(
        proto.STRING,
        number=363890244,
        optional=True,
    )
    locality_lb_policies: MutableSequence[
        "BackendServiceLocalityLoadBalancingPolicyConfig"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=140982557,
        message="BackendServiceLocalityLoadBalancingPolicyConfig",
    )
    locality_lb_policy: str = proto.Field(
        proto.STRING,
        number=131431487,
        optional=True,
    )
    log_config: "BackendServiceLogConfig" = proto.Field(
        proto.MESSAGE,
        number=351299741,
        optional=True,
        message="BackendServiceLogConfig",
    )
    max_stream_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=61428376,
        optional=True,
        message="Duration",
    )
    metadatas: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=8514340,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    network_pass_through_lb_traffic_policy: "BackendServiceNetworkPassThroughLbTrafficPolicy" = proto.Field(
        proto.MESSAGE,
        number=230323750,
        optional=True,
        message="BackendServiceNetworkPassThroughLbTrafficPolicy",
    )
    outlier_detection: "OutlierDetection" = proto.Field(
        proto.MESSAGE,
        number=354625086,
        optional=True,
        message="OutlierDetection",
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )
    protocol: str = proto.Field(
        proto.STRING,
        number=84577944,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
        optional=True,
    )
    security_settings: "SecuritySettings" = proto.Field(
        proto.MESSAGE,
        number=478649922,
        optional=True,
        message="SecuritySettings",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    service_bindings: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=133581016,
    )
    service_lb_policy: str = proto.Field(
        proto.STRING,
        number=94848785,
        optional=True,
    )
    session_affinity: str = proto.Field(
        proto.STRING,
        number=463888561,
        optional=True,
    )
    strong_session_affinity_cookie: "BackendServiceHttpCookie" = proto.Field(
        proto.MESSAGE,
        number=238195722,
        optional=True,
        message="BackendServiceHttpCookie",
    )
    subsetting: "Subsetting" = proto.Field(
        proto.MESSAGE,
        number=450283536,
        optional=True,
        message="Subsetting",
    )
    timeout_sec: int = proto.Field(
        proto.INT32,
        number=79994995,
        optional=True,
    )
    tls_settings: "BackendServiceTlsSettings" = proto.Field(
        proto.MESSAGE,
        number=81794791,
        optional=True,
        message="BackendServiceTlsSettings",
    )
    used_by: MutableSequence["BackendServiceUsedBy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=389320729,
        message="BackendServiceUsedBy",
    )


class BackendServiceAggregatedList(proto.Message):
    r"""Contains a list of BackendServicesScopedList.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.BackendServicesScopedList]):
            A list of BackendServicesScopedList
            resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "BackendServicesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="BackendServicesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class BackendServiceCdnPolicy(proto.Message):
    r"""Message containing Cloud CDN configuration for a backend
    service.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bypass_cache_on_request_headers (MutableSequence[google.cloud.compute_v1beta.types.BackendServiceCdnPolicyBypassCacheOnRequestHeader]):
            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.
        cache_key_policy (google.cloud.compute_v1beta.types.CacheKeyPolicy):
            The CacheKeyPolicy for this CdnPolicy.

            This field is a member of `oneof`_ ``_cache_key_policy``.
        cache_mode (str):
            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. Check
            the CacheMode enum for the list of possible values.

            This field is a member of `oneof`_ ``_cache_mode``.
        client_ttl (int):
            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).

            This field is a member of `oneof`_ ``_client_ttl``.
        default_ttl (int):
            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.

            This field is a member of `oneof`_ ``_default_ttl``.
        max_ttl (int):
            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.

            This field is a member of `oneof`_ ``_max_ttl``.
        negative_caching (bool):
            Negative caching allows per-status code TTLs to be set, in
            order to apply fine-grained caching for common errors or
            redirects. This can reduce the load on your origin and
            improve end-user experience by reducing response latency.
            When the cache mode is set to CACHE_ALL_STATIC or
            USE_ORIGIN_HEADERS, negative caching applies to responses
            with the specified response code that lack any
            Cache-Control, Expires, or Pragma: no-cache directives. When
            the cache mode is set to FORCE_CACHE_ALL, negative caching
            applies to all responses with the specified response code,
            and override any caching headers. By default, Cloud CDN will
            apply the following default TTLs to these status codes: HTTP
            300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
            HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal
            Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected
            Request), 501 (Not Implemented): 60s. These defaults can be
            overridden in negative_caching_policy.

            This field is a member of `oneof`_ ``_negative_caching``.
        negative_caching_policy (MutableSequence[google.cloud.compute_v1beta.types.BackendServiceCdnPolicyNegativeCachingPolicy]):
            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.
        request_coalescing (bool):
            If true then Cloud CDN will combine multiple
            concurrent cache fill requests into a small
            number of requests to the origin.

            This field is a member of `oneof`_ ``_request_coalescing``.
        serve_while_stale (int):
            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.

            This field is a member of `oneof`_ ``_serve_while_stale``.
        signed_url_cache_max_age_sec (int):
            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.

            This field is a member of `oneof`_ ``_signed_url_cache_max_age_sec``.
        signed_url_key_names (MutableSequence[str]):
            [Output Only] Names of the keys for signing request URLs.
    """

    class CacheMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_CACHE_MODE (0):
                A value indicating that the enum field is not
                set.
            CACHE_ALL_STATIC (355027945):
                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 (486026928):
                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 (381295560):
                No description available.
            USE_ORIGIN_HEADERS (55380261):
                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.
        """
        UNDEFINED_CACHE_MODE = 0
        CACHE_ALL_STATIC = 355027945
        FORCE_CACHE_ALL = 486026928
        INVALID_CACHE_MODE = 381295560
        USE_ORIGIN_HEADERS = 55380261

    bypass_cache_on_request_headers: MutableSequence[
        "BackendServiceCdnPolicyBypassCacheOnRequestHeader"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=486203082,
        message="BackendServiceCdnPolicyBypassCacheOnRequestHeader",
    )
    cache_key_policy: "CacheKeyPolicy" = proto.Field(
        proto.MESSAGE,
        number=159263727,
        optional=True,
        message="CacheKeyPolicy",
    )
    cache_mode: str = proto.Field(
        proto.STRING,
        number=28877888,
        optional=True,
    )
    client_ttl: int = proto.Field(
        proto.INT32,
        number=29034360,
        optional=True,
    )
    default_ttl: int = proto.Field(
        proto.INT32,
        number=100253422,
        optional=True,
    )
    max_ttl: int = proto.Field(
        proto.INT32,
        number=307578001,
        optional=True,
    )
    negative_caching: bool = proto.Field(
        proto.BOOL,
        number=336110005,
        optional=True,
    )
    negative_caching_policy: MutableSequence[
        "BackendServiceCdnPolicyNegativeCachingPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=155359996,
        message="BackendServiceCdnPolicyNegativeCachingPolicy",
    )
    request_coalescing: bool = proto.Field(
        proto.BOOL,
        number=532808276,
        optional=True,
    )
    serve_while_stale: int = proto.Field(
        proto.INT32,
        number=236682203,
        optional=True,
    )
    signed_url_cache_max_age_sec: int = proto.Field(
        proto.INT64,
        number=269374534,
        optional=True,
    )
    signed_url_key_names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=371848885,
    )


class BackendServiceCdnPolicyBypassCacheOnRequestHeader(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        header_name (str):
            The header field name to match on when
            bypassing cache. Values are case-insensitive.

            This field is a member of `oneof`_ ``_header_name``.
    """

    header_name: str = proto.Field(
        proto.STRING,
        number=110223613,
        optional=True,
    )


class BackendServiceCdnPolicyNegativeCachingPolicy(proto.Message):
    r"""Specify CDN TTLs for response error codes.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (int):
            The HTTP status code to define a TTL against.
            Only HTTP status codes 300, 301, 302, 307, 308,
            404, 405, 410, 421, 451 and 501 are can be
            specified as values, and you cannot specify a
            status code more than once.

            This field is a member of `oneof`_ ``_code``.
        ttl (int):
            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.

            This field is a member of `oneof`_ ``_ttl``.
    """

    code: int = proto.Field(
        proto.INT32,
        number=3059181,
        optional=True,
    )
    ttl: int = proto.Field(
        proto.INT32,
        number=115180,
        optional=True,
    )


class BackendServiceConnectionTrackingPolicy(proto.Message):
    r"""Connection Tracking configuration for this BackendService.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        connection_persistence_on_unhealthy_backends (str):
            Specifies connection persistence when backends are
            unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set
            to DEFAULT_FOR_PROTOCOL, the existing connections persist on
            unhealthy backends only for connection-oriented protocols
            (TCP and SCTP) and only if the Tracking Mode is
            PER_CONNECTION (default tracking mode) or the Session
            Affinity is configured for 5-tuple. They do not persist for
            UDP. If set to NEVER_PERSIST, after a backend becomes
            unhealthy, the existing connections on the unhealthy backend
            are never persisted on the unhealthy backend. They are
            always diverted to newly selected healthy backends (unless
            all backends are unhealthy). If set to ALWAYS_PERSIST,
            existing connections always persist on unhealthy backends
            regardless of protocol and session affinity. It is generally
            not recommended to use this mode overriding the default. For
            more details, see `Connection Persistence for Network Load
            Balancing <https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence>`__
            and `Connection Persistence for Internal TCP/UDP Load
            Balancing <https://cloud.google.com/load-balancing/docs/internal#connection-persistence>`__.
            Check the ConnectionPersistenceOnUnhealthyBackends enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_connection_persistence_on_unhealthy_backends``.
        enable_strong_affinity (bool):
            Enable Strong Session Affinity for external
            passthrough Network Load Balancers. This option
            is not available publicly.

            This field is a member of `oneof`_ ``_enable_strong_affinity``.
        idle_timeout_sec (int):
            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.

            This field is a member of `oneof`_ ``_idle_timeout_sec``.
        tracking_mode (str):
            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>`__.
            Check the TrackingMode enum for the list of possible values.

            This field is a member of `oneof`_ ``_tracking_mode``.
    """

    class ConnectionPersistenceOnUnhealthyBackends(proto.Enum):
        r"""Specifies connection persistence when backends are unhealthy. The
        default value is DEFAULT_FOR_PROTOCOL. If set to
        DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy
        backends only for connection-oriented protocols (TCP and SCTP) and
        only if the Tracking Mode is PER_CONNECTION (default tracking mode)
        or the Session Affinity is configured for 5-tuple. They do not
        persist for UDP. If set to NEVER_PERSIST, after a backend becomes
        unhealthy, the existing connections on the unhealthy backend are
        never persisted on the unhealthy backend. They are always diverted
        to newly selected healthy backends (unless all backends are
        unhealthy). If set to ALWAYS_PERSIST, existing connections always
        persist on unhealthy backends regardless of protocol and session
        affinity. It is generally not recommended to use this mode
        overriding the default. For more details, see `Connection
        Persistence for Network Load
        Balancing <https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence>`__
        and `Connection Persistence for Internal TCP/UDP Load
        Balancing <https://cloud.google.com/load-balancing/docs/internal#connection-persistence>`__.

        Values:
            UNDEFINED_CONNECTION_PERSISTENCE_ON_UNHEALTHY_BACKENDS (0):
                A value indicating that the enum field is not
                set.
            ALWAYS_PERSIST (38400900):
                No description available.
            DEFAULT_FOR_PROTOCOL (145265356):
                No description available.
            NEVER_PERSIST (138646241):
                No description available.
        """
        UNDEFINED_CONNECTION_PERSISTENCE_ON_UNHEALTHY_BACKENDS = 0
        ALWAYS_PERSIST = 38400900
        DEFAULT_FOR_PROTOCOL = 145265356
        NEVER_PERSIST = 138646241

    class TrackingMode(proto.Enum):
        r"""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>`__.

        Values:
            UNDEFINED_TRACKING_MODE (0):
                A value indicating that the enum field is not
                set.
            INVALID_TRACKING_MODE (49234371):
                No description available.
            PER_CONNECTION (85162848):
                No description available.
            PER_SESSION (182099252):
                No description available.
        """
        UNDEFINED_TRACKING_MODE = 0
        INVALID_TRACKING_MODE = 49234371
        PER_CONNECTION = 85162848
        PER_SESSION = 182099252

    connection_persistence_on_unhealthy_backends: str = proto.Field(
        proto.STRING,
        number=152439033,
        optional=True,
    )
    enable_strong_affinity: bool = proto.Field(
        proto.BOOL,
        number=24539924,
        optional=True,
    )
    idle_timeout_sec: int = proto.Field(
        proto.INT32,
        number=24977544,
        optional=True,
    )
    tracking_mode: str = proto.Field(
        proto.STRING,
        number=127757867,
        optional=True,
    )


class BackendServiceCustomMetric(proto.Message):
    r"""Custom Metrics are used for WEIGHTED_ROUND_ROBIN locality_lb_policy.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        dry_run (bool):
            If true, the metric data is not used for load
            balancing.

            This field is a member of `oneof`_ ``_dry_run``.
        name (str):
            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 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.

            This field is a member of `oneof`_ ``_name``.
    """

    dry_run: bool = proto.Field(
        proto.BOOL,
        number=323854839,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class BackendServiceDynamicForwarding(proto.Message):
    r"""Defines a dynamic forwarding configuration for the backend
    service.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_port_selection (google.cloud.compute_v1beta.types.BackendServiceDynamicForwardingIpPortSelection):
            IP:PORT based dynamic forwarding
            configuration.

            This field is a member of `oneof`_ ``_ip_port_selection``.
    """

    ip_port_selection: "BackendServiceDynamicForwardingIpPortSelection" = proto.Field(
        proto.MESSAGE,
        number=527934822,
        optional=True,
        message="BackendServiceDynamicForwardingIpPortSelection",
    )


class BackendServiceDynamicForwardingIpPortSelection(proto.Message):
    r"""Defines a IP:PORT based dynamic forwarding configuration for
    the backend service. Some ranges are restricted: Restricted
    ranges.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enabled (bool):
            A boolean flag enabling IP:PORT based dynamic
            forwarding.

            This field is a member of `oneof`_ ``_enabled``.
    """

    enabled: bool = proto.Field(
        proto.BOOL,
        number=1018689,
        optional=True,
    )


class BackendServiceFailoverPolicy(proto.Message):
    r"""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).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disable_connection_drain_on_failover (bool):
            This can be set to true only if the protocol
            is TCP. The default is false.

            This field is a member of `oneof`_ ``_disable_connection_drain_on_failover``.
        drop_traffic_if_unhealthy (bool):
            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.

            This field is a member of `oneof`_ ``_drop_traffic_if_unhealthy``.
        failover_ratio (float):
            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>`__.

            This field is a member of `oneof`_ ``_failover_ratio``.
    """

    disable_connection_drain_on_failover: bool = proto.Field(
        proto.BOOL,
        number=182150753,
        optional=True,
    )
    drop_traffic_if_unhealthy: bool = proto.Field(
        proto.BOOL,
        number=112289428,
        optional=True,
    )
    failover_ratio: float = proto.Field(
        proto.FLOAT,
        number=212667006,
        optional=True,
    )


class BackendServiceGroupHealth(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        annotations (MutableMapping[str, str]):
            Metadata defined as annotations on the
            network endpoint group.
        health_status (MutableSequence[google.cloud.compute_v1beta.types.HealthStatus]):
            Health state of the backend instances or
            endpoints in requested instance or network
            endpoint group, determined based on configured
            health checks.
        kind (str):
            [Output Only] Type of resource. Always
            compute#backendServiceGroupHealth for the health of backend
            services.

            This field is a member of `oneof`_ ``_kind``.
    """

    annotations: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=112032548,
    )
    health_status: MutableSequence["HealthStatus"] = proto.RepeatedField(
        proto.MESSAGE,
        number=380545845,
        message="HealthStatus",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )


class BackendServiceHAPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fast_i_p_move (str):
            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 64. - 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. Check the FastIPMove enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_fast_i_p_move``.
        leader (google.cloud.compute_v1beta.types.BackendServiceHAPolicyLeader):
            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.

            This field is a member of `oneof`_ ``_leader``.
    """

    class FastIPMove(proto.Enum):
        r"""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 64. - 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.

        Values:
            UNDEFINED_FAST_I_P_MOVE (0):
                A value indicating that the enum field is not
                set.
            DISABLED (516696700):
                No description available.
            GARP_RA (527352630):
                No description available.
        """
        UNDEFINED_FAST_I_P_MOVE = 0
        DISABLED = 516696700
        GARP_RA = 527352630

    fast_i_p_move: str = proto.Field(
        proto.STRING,
        number=222633817,
        optional=True,
    )
    leader: "BackendServiceHAPolicyLeader" = proto.Field(
        proto.MESSAGE,
        number=503858441,
        optional=True,
        message="BackendServiceHAPolicyLeader",
    )


class BackendServiceHAPolicyLeader(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_group (str):
            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.

            This field is a member of `oneof`_ ``_backend_group``.
        network_endpoint (google.cloud.compute_v1beta.types.BackendServiceHAPolicyLeaderNetworkEndpoint):
            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.

            This field is a member of `oneof`_ ``_network_endpoint``.
    """

    backend_group: str = proto.Field(
        proto.STRING,
        number=457777428,
        optional=True,
    )
    network_endpoint: "BackendServiceHAPolicyLeaderNetworkEndpoint" = proto.Field(
        proto.MESSAGE,
        number=56789126,
        optional=True,
        message="BackendServiceHAPolicyLeaderNetworkEndpoint",
    )


class BackendServiceHAPolicyLeaderNetworkEndpoint(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            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

            This field is a member of `oneof`_ ``_instance``.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )


class BackendServiceHttpCookie(proto.Message):
    r"""The HTTP cookie used for stateful session affinity.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of the cookie.

            This field is a member of `oneof`_ ``_name``.
        path (str):
            Path to set for the cookie.

            This field is a member of `oneof`_ ``_path``.
        ttl (google.cloud.compute_v1beta.types.Duration):
            Lifetime of the cookie.

            This field is a member of `oneof`_ ``_ttl``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    path: str = proto.Field(
        proto.STRING,
        number=3433509,
        optional=True,
    )
    ttl: "Duration" = proto.Field(
        proto.MESSAGE,
        number=115180,
        optional=True,
        message="Duration",
    )


class BackendServiceIAP(proto.Message):
    r"""Identity-Aware Proxy

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enabled (bool):
            Whether the serving infrastructure will
            authenticate and authorize all incoming
            requests.

            This field is a member of `oneof`_ ``_enabled``.
        oauth2_client_id (str):
            OAuth2 client ID to use for the
            authentication flow.

            This field is a member of `oneof`_ ``_oauth2_client_id``.
        oauth2_client_secret (str):
            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

            This field is a member of `oneof`_ ``_oauth2_client_secret``.
        oauth2_client_secret_sha256 (str):
            [Output Only] SHA256 hash value for the field
            oauth2_client_secret above.

            This field is a member of `oneof`_ ``_oauth2_client_secret_sha256``.
    """

    enabled: bool = proto.Field(
        proto.BOOL,
        number=1018689,
        optional=True,
    )
    oauth2_client_id: str = proto.Field(
        proto.STRING,
        number=314017611,
        optional=True,
    )
    oauth2_client_secret: str = proto.Field(
        proto.STRING,
        number=50999520,
        optional=True,
    )
    oauth2_client_secret_sha256: str = proto.Field(
        proto.STRING,
        number=112903782,
        optional=True,
    )


class BackendServiceList(proto.Message):
    r"""Contains a list of BackendService resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.BackendService]):
            A list of BackendService resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#backendServiceList for lists of backend services.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["BackendService"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="BackendService",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class BackendServiceListUsable(proto.Message):
    r"""Contains a list of usable BackendService resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.BackendService]):
            A list of BackendService resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#usableBackendServiceList for lists of usable backend
            services.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["BackendService"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="BackendService",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class BackendServiceLocalityLoadBalancingPolicyConfig(proto.Message):
    r"""Container for either a built-in LB policy supported by gRPC
    or Envoy or a custom one implemented by the end user.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        custom_policy (google.cloud.compute_v1beta.types.BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy):

            This field is a member of `oneof`_ ``_custom_policy``.
        policy (google.cloud.compute_v1beta.types.BackendServiceLocalityLoadBalancingPolicyConfigPolicy):

            This field is a member of `oneof`_ ``_policy``.
    """

    custom_policy: "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" = (
        proto.Field(
            proto.MESSAGE,
            number=4818368,
            optional=True,
            message="BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy",
        )
    )
    policy: "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" = proto.Field(
        proto.MESSAGE,
        number=91071794,
        optional=True,
        message="BackendServiceLocalityLoadBalancingPolicyConfigPolicy",
    )


class BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy(proto.Message):
    r"""The configuration for a custom policy implemented by the user
    and deployed with the client.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        data (str):
            An optional, arbitrary JSON object with
            configuration data, understood by a locally
            installed custom policy implementation.

            This field is a member of `oneof`_ ``_data``.
        name (str):
            Identifies the custom policy. The value
            should match the name of a custom implementation
            registered on the gRPC clients. It should follow
            protocol buffer message naming conventions and
            include the full path (for example,
            myorg.CustomLbPolicy). The maximum length is 256
            characters. Do not specify the same custom
            policy more than once for a backend. If you do,
            the configuration is rejected. For an example of
            how to use this field, see Use a custom policy.

            This field is a member of `oneof`_ ``_name``.
    """

    data: str = proto.Field(
        proto.STRING,
        number=3076010,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class BackendServiceLocalityLoadBalancingPolicyConfigPolicy(proto.Message):
    r"""The configuration for a built-in load balancing policy.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            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. Check the Name enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_name``.
    """

    class Name(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_NAME (0):
                A value indicating that the enum field is not
                set.
            INVALID_LB_POLICY (323318707):
                No description available.
            LEAST_REQUEST (46604921):
                An O(1) algorithm which selects two random
                healthy hosts and picks the host which has fewer
                active requests.
            MAGLEV (119180266):
                This algorithm implements consistent hashing
                to backends. Maglev can be used as a drop in
                replacement for the ring hash load balancer.
                Maglev is not as stable as ring hash but has
                faster table lookup build times and host
                selection times. For more information about
                Maglev, see
                https://ai.google/research/pubs/pub44824
            ORIGINAL_DESTINATION (166297216):
                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 (262527171):
                The load balancer selects a random healthy
                host.
            RING_HASH (432795069):
                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 (153895801):
                This is a simple policy in which each healthy
                backend is selected in round robin order. This
                is the default.
            WEIGHTED_MAGLEV (254930962):
                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 (5584977):
                Per-endpoint weighted round-robin Load Balancing using
                weights computed from Backend reported Custom Metrics. If
                set, the Backend Service responses are expected to contain
                non-standard HTTP response header field
                X-Endpoint-Load-Metrics. The reported metrics to use for
                computing the weights are specified via the
                backends[].customMetrics fields.
        """
        UNDEFINED_NAME = 0
        INVALID_LB_POLICY = 323318707
        LEAST_REQUEST = 46604921
        MAGLEV = 119180266
        ORIGINAL_DESTINATION = 166297216
        RANDOM = 262527171
        RING_HASH = 432795069
        ROUND_ROBIN = 153895801
        WEIGHTED_MAGLEV = 254930962
        WEIGHTED_ROUND_ROBIN = 5584977

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class BackendServiceLogConfig(proto.Message):
    r"""The available logging options for the load balancer traffic
    served by this backend service.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable (bool):
            Denotes whether to enable logging for the
            load balancer traffic served by this backend
            service. The default value is false.

            This field is a member of `oneof`_ ``_enable``.
        optional_fields (MutableSequence[str]):
            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
        optional_mode (str):
            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. Check the
            OptionalMode enum for the list of possible values.

            This field is a member of `oneof`_ ``_optional_mode``.
        sample_rate (float):
            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.

            This field is a member of `oneof`_ ``_sample_rate``.
    """

    class OptionalMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_OPTIONAL_MODE (0):
                A value indicating that the enum field is not
                set.
            CUSTOM (388595569):
                A subset of optional fields.
            EXCLUDE_ALL_OPTIONAL (168636099):
                None optional fields.
            INCLUDE_ALL_OPTIONAL (535606965):
                All optional fields.
        """
        UNDEFINED_OPTIONAL_MODE = 0
        CUSTOM = 388595569
        EXCLUDE_ALL_OPTIONAL = 168636099
        INCLUDE_ALL_OPTIONAL = 535606965

    enable: bool = proto.Field(
        proto.BOOL,
        number=311764355,
        optional=True,
    )
    optional_fields: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=528589944,
    )
    optional_mode: str = proto.Field(
        proto.STRING,
        number=128697122,
        optional=True,
    )
    sample_rate: float = proto.Field(
        proto.FLOAT,
        number=153193045,
        optional=True,
    )


class BackendServiceNetworkPassThroughLbTrafficPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        zonal_affinity (google.cloud.compute_v1beta.types.BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity):
            When configured, new connections are load
            balanced across healthy backend endpoints in the
            local zone.

            This field is a member of `oneof`_ ``_zonal_affinity``.
    """

    zonal_affinity: "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity" = (
        proto.Field(
            proto.MESSAGE,
            number=536266051,
            optional=True,
            message="BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity",
        )
    )


class BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        spillover (str):
            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. Check the Spillover enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_spillover``.
        spillover_ratio (float):
            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.

            This field is a member of `oneof`_ ``_spillover_ratio``.
    """

    class Spillover(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SPILLOVER (0):
                A value indicating that the enum field is not
                set.
            ZONAL_AFFINITY_DISABLED (230207960):
                No description available.
            ZONAL_AFFINITY_SPILL_CROSS_ZONE (251048410):
                No description available.
            ZONAL_AFFINITY_STAY_WITHIN_ZONE (12177782):
                No description available.
        """
        UNDEFINED_SPILLOVER = 0
        ZONAL_AFFINITY_DISABLED = 230207960
        ZONAL_AFFINITY_SPILL_CROSS_ZONE = 251048410
        ZONAL_AFFINITY_STAY_WITHIN_ZONE = 12177782

    spillover: str = proto.Field(
        proto.STRING,
        number=505501440,
        optional=True,
    )
    spillover_ratio: float = proto.Field(
        proto.FLOAT,
        number=135580172,
        optional=True,
    )


class BackendServiceReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):

            This field is a member of `oneof`_ ``_backend_service``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
        optional=True,
    )


class BackendServiceTlsSettings(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        authentication_config (str):
            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.

            This field is a member of `oneof`_ ``_authentication_config``.
        sni (str):
            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[].

            This field is a member of `oneof`_ ``_sni``.
        subject_alt_names (MutableSequence[google.cloud.compute_v1beta.types.BackendServiceTlsSettingsSubjectAltName]):
            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[].
    """

    authentication_config: str = proto.Field(
        proto.STRING,
        number=408053481,
        optional=True,
    )
    sni: str = proto.Field(
        proto.STRING,
        number=114030,
        optional=True,
    )
    subject_alt_names: MutableSequence[
        "BackendServiceTlsSettingsSubjectAltName"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=330029535,
        message="BackendServiceTlsSettingsSubjectAltName",
    )


class BackendServiceTlsSettingsSubjectAltName(proto.Message):
    r"""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


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        dns_name (str):
            The SAN specified as a DNS Name.

            This field is a member of `oneof`_ ``_dns_name``.
        uniform_resource_identifier (str):
            The SAN specified as a URI.

            This field is a member of `oneof`_ ``_uniform_resource_identifier``.
    """

    dns_name: str = proto.Field(
        proto.STRING,
        number=411992033,
        optional=True,
    )
    uniform_resource_identifier: str = proto.Field(
        proto.STRING,
        number=491409007,
        optional=True,
    )


class BackendServiceUsedBy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        reference (str):
            [Output Only] Server-defined URL for resources referencing
            given BackendService like UrlMaps, TargetTcpProxies,
            TargetSslProxies and ForwardingRule.

            This field is a member of `oneof`_ ``_reference``.
    """

    reference: str = proto.Field(
        proto.STRING,
        number=148586315,
        optional=True,
    )


class BackendServicesGetEffectiveSecurityPoliciesResponse(proto.Message):
    r"""

    Attributes:
        security_policies (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicy]):
            Effective security policies for the backend
            service.
    """

    security_policies: MutableSequence["SecurityPolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=127783791,
        message="SecurityPolicy",
    )


class BackendServicesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_services (MutableSequence[google.cloud.compute_v1beta.types.BackendService]):
            A list of BackendServices contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of backend services when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    backend_services: MutableSequence["BackendService"] = proto.RepeatedField(
        proto.MESSAGE,
        number=388522409,
        message="BackendService",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class BfdPacket(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        authentication_present (bool):
            The Authentication Present bit of the BFD
            packet. This is specified in section 4.1 of
            RFC5880

            This field is a member of `oneof`_ ``_authentication_present``.
        control_plane_independent (bool):
            The Control Plane Independent bit of the BFD
            packet. This is specified in section 4.1 of
            RFC5880

            This field is a member of `oneof`_ ``_control_plane_independent``.
        demand (bool):
            The demand bit of the BFD packet. This is
            specified in section 4.1 of RFC5880

            This field is a member of `oneof`_ ``_demand``.
        diagnostic (str):
            The diagnostic code specifies the local
            system's reason for the last change in session
            state. This allows remote systems to determine
            the reason that the previous session failed, for
            example. These diagnostic codes are specified in
            section 4.1 of RFC5880 Check the Diagnostic enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_diagnostic``.
        final (bool):
            The Final bit of the BFD packet. This is
            specified in section 4.1 of RFC5880

            This field is a member of `oneof`_ ``_final``.
        length (int):
            The length of the BFD Control packet in
            bytes. This is specified in section 4.1 of
            RFC5880

            This field is a member of `oneof`_ ``_length``.
        min_echo_rx_interval_ms (int):
            The Required Min Echo RX Interval value in
            the BFD packet. This is specified in section 4.1
            of RFC5880

            This field is a member of `oneof`_ ``_min_echo_rx_interval_ms``.
        min_rx_interval_ms (int):
            The Required Min RX Interval value in the BFD
            packet. This is specified in section 4.1 of
            RFC5880

            This field is a member of `oneof`_ ``_min_rx_interval_ms``.
        min_tx_interval_ms (int):
            The Desired Min TX Interval value in the BFD
            packet. This is specified in section 4.1 of
            RFC5880

            This field is a member of `oneof`_ ``_min_tx_interval_ms``.
        multiplier (int):
            The detection time multiplier of the BFD
            packet. This is specified in section 4.1 of
            RFC5880

            This field is a member of `oneof`_ ``_multiplier``.
        multipoint (bool):
            The multipoint bit of the BFD packet. This is
            specified in section 4.1 of RFC5880

            This field is a member of `oneof`_ ``_multipoint``.
        my_discriminator (int):
            The My Discriminator value in the BFD packet.
            This is specified in section 4.1 of RFC5880

            This field is a member of `oneof`_ ``_my_discriminator``.
        poll (bool):
            The Poll bit of the BFD packet. This is
            specified in section 4.1 of RFC5880

            This field is a member of `oneof`_ ``_poll``.
        state (str):
            The current BFD session state as seen by the
            transmitting system. These states are specified
            in section 4.1 of RFC5880 Check the State enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
        version (int):
            The version number of the BFD protocol, as
            specified in section 4.1 of RFC5880.

            This field is a member of `oneof`_ ``_version``.
        your_discriminator (int):
            The Your Discriminator value in the BFD
            packet. This is specified in section 4.1 of
            RFC5880

            This field is a member of `oneof`_ ``_your_discriminator``.
    """

    class Diagnostic(proto.Enum):
        r"""The diagnostic code specifies the local system's reason for
        the last change in session state. This allows remote systems to
        determine the reason that the previous session failed, for
        example. These diagnostic codes are specified in section 4.1 of
        RFC5880

        Values:
            UNDEFINED_DIAGNOSTIC (0):
                A value indicating that the enum field is not
                set.
            ADMINISTRATIVELY_DOWN (121685798):
                No description available.
            CONCATENATED_PATH_DOWN (26186892):
                No description available.
            CONTROL_DETECTION_TIME_EXPIRED (135478383):
                No description available.
            DIAGNOSTIC_UNSPECIFIED (58720895):
                No description available.
            ECHO_FUNCTION_FAILED (220687466):
                No description available.
            FORWARDING_PLANE_RESET (19715882):
                No description available.
            NEIGHBOR_SIGNALED_SESSION_DOWN (374226742):
                No description available.
            NO_DIAGNOSTIC (222503141):
                No description available.
            PATH_DOWN (290605180):
                No description available.
            REVERSE_CONCATENATED_PATH_DOWN (479337129):
                No description available.
        """
        UNDEFINED_DIAGNOSTIC = 0
        ADMINISTRATIVELY_DOWN = 121685798
        CONCATENATED_PATH_DOWN = 26186892
        CONTROL_DETECTION_TIME_EXPIRED = 135478383
        DIAGNOSTIC_UNSPECIFIED = 58720895
        ECHO_FUNCTION_FAILED = 220687466
        FORWARDING_PLANE_RESET = 19715882
        NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742
        NO_DIAGNOSTIC = 222503141
        PATH_DOWN = 290605180
        REVERSE_CONCATENATED_PATH_DOWN = 479337129

    class State(proto.Enum):
        r"""The current BFD session state as seen by the transmitting
        system. These states are specified in section 4.1 of RFC5880

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ADMIN_DOWN (128544690):
                No description available.
            DOWN (2104482):
                No description available.
            INIT (2252048):
                No description available.
            STATE_UNSPECIFIED (470755401):
                No description available.
            UP (2715):
                No description available.
        """
        UNDEFINED_STATE = 0
        ADMIN_DOWN = 128544690
        DOWN = 2104482
        INIT = 2252048
        STATE_UNSPECIFIED = 470755401
        UP = 2715

    authentication_present: bool = proto.Field(
        proto.BOOL,
        number=105974260,
        optional=True,
    )
    control_plane_independent: bool = proto.Field(
        proto.BOOL,
        number=62363573,
        optional=True,
    )
    demand: bool = proto.Field(
        proto.BOOL,
        number=275180107,
        optional=True,
    )
    diagnostic: str = proto.Field(
        proto.STRING,
        number=62708647,
        optional=True,
    )
    final: bool = proto.Field(
        proto.BOOL,
        number=97436022,
        optional=True,
    )
    length: int = proto.Field(
        proto.UINT32,
        number=504249062,
        optional=True,
    )
    min_echo_rx_interval_ms: int = proto.Field(
        proto.UINT32,
        number=97286868,
        optional=True,
    )
    min_rx_interval_ms: int = proto.Field(
        proto.UINT32,
        number=463399028,
        optional=True,
    )
    min_tx_interval_ms: int = proto.Field(
        proto.UINT32,
        number=526023602,
        optional=True,
    )
    multiplier: int = proto.Field(
        proto.UINT32,
        number=191331777,
        optional=True,
    )
    multipoint: bool = proto.Field(
        proto.BOOL,
        number=191421431,
        optional=True,
    )
    my_discriminator: int = proto.Field(
        proto.UINT32,
        number=76663113,
        optional=True,
    )
    poll: bool = proto.Field(
        proto.BOOL,
        number=3446719,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    version: int = proto.Field(
        proto.UINT32,
        number=351608024,
        optional=True,
    )
    your_discriminator: int = proto.Field(
        proto.UINT32,
        number=515634064,
        optional=True,
    )


class BfdStatus(proto.Message):
    r"""Next free: 15

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bfd_session_initialization_mode (str):
            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. Check the
            BfdSessionInitializationMode enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_bfd_session_initialization_mode``.
        config_update_timestamp_micros (int):
            Unix timestamp of the most recent config
            update.

            This field is a member of `oneof`_ ``_config_update_timestamp_micros``.
        control_packet_counts (google.cloud.compute_v1beta.types.BfdStatusPacketCounts):
            Control packet counts for the current BFD
            session.

            This field is a member of `oneof`_ ``_control_packet_counts``.
        control_packet_intervals (MutableSequence[google.cloud.compute_v1beta.types.PacketIntervals]):
            Inter-packet time interval statistics for
            control packets.
        local_diagnostic (str):
            The diagnostic code specifies the local
            system's reason for the last change in session
            state. This allows remote systems to determine
            the reason that the previous session failed, for
            example. These diagnostic codes are specified in
            section 4.1 of RFC5880 Check the LocalDiagnostic
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_local_diagnostic``.
        local_state (str):
            The current BFD session state as seen by the
            transmitting system. These states are specified
            in section 4.1 of RFC5880 Check the LocalState
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_local_state``.
        negotiated_local_control_tx_interval_ms (int):
            Negotiated transmit interval for control
            packets.

            This field is a member of `oneof`_ ``_negotiated_local_control_tx_interval_ms``.
        rx_packet (google.cloud.compute_v1beta.types.BfdPacket):
            The most recent Rx control packet for this
            BFD session.

            This field is a member of `oneof`_ ``_rx_packet``.
        tx_packet (google.cloud.compute_v1beta.types.BfdPacket):
            The most recent Tx control packet for this
            BFD session.

            This field is a member of `oneof`_ ``_tx_packet``.
        uptime_ms (int):
            Session uptime in milliseconds. Value will be
            0 if session is not up.

            This field is a member of `oneof`_ ``_uptime_ms``.
    """

    class BfdSessionInitializationMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_BFD_SESSION_INITIALIZATION_MODE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                No description available.
            DISABLED (516696700):
                No description available.
            PASSIVE (462813959):
                No description available.
        """
        UNDEFINED_BFD_SESSION_INITIALIZATION_MODE = 0
        ACTIVE = 314733318
        DISABLED = 516696700
        PASSIVE = 462813959

    class LocalDiagnostic(proto.Enum):
        r"""The diagnostic code specifies the local system's reason for
        the last change in session state. This allows remote systems to
        determine the reason that the previous session failed, for
        example. These diagnostic codes are specified in section 4.1 of
        RFC5880

        Values:
            UNDEFINED_LOCAL_DIAGNOSTIC (0):
                A value indicating that the enum field is not
                set.
            ADMINISTRATIVELY_DOWN (121685798):
                No description available.
            CONCATENATED_PATH_DOWN (26186892):
                No description available.
            CONTROL_DETECTION_TIME_EXPIRED (135478383):
                No description available.
            DIAGNOSTIC_UNSPECIFIED (58720895):
                No description available.
            ECHO_FUNCTION_FAILED (220687466):
                No description available.
            FORWARDING_PLANE_RESET (19715882):
                No description available.
            NEIGHBOR_SIGNALED_SESSION_DOWN (374226742):
                No description available.
            NO_DIAGNOSTIC (222503141):
                No description available.
            PATH_DOWN (290605180):
                No description available.
            REVERSE_CONCATENATED_PATH_DOWN (479337129):
                No description available.
        """
        UNDEFINED_LOCAL_DIAGNOSTIC = 0
        ADMINISTRATIVELY_DOWN = 121685798
        CONCATENATED_PATH_DOWN = 26186892
        CONTROL_DETECTION_TIME_EXPIRED = 135478383
        DIAGNOSTIC_UNSPECIFIED = 58720895
        ECHO_FUNCTION_FAILED = 220687466
        FORWARDING_PLANE_RESET = 19715882
        NEIGHBOR_SIGNALED_SESSION_DOWN = 374226742
        NO_DIAGNOSTIC = 222503141
        PATH_DOWN = 290605180
        REVERSE_CONCATENATED_PATH_DOWN = 479337129

    class LocalState(proto.Enum):
        r"""The current BFD session state as seen by the transmitting
        system. These states are specified in section 4.1 of RFC5880

        Values:
            UNDEFINED_LOCAL_STATE (0):
                A value indicating that the enum field is not
                set.
            ADMIN_DOWN (128544690):
                No description available.
            DOWN (2104482):
                No description available.
            INIT (2252048):
                No description available.
            STATE_UNSPECIFIED (470755401):
                No description available.
            UP (2715):
                No description available.
        """
        UNDEFINED_LOCAL_STATE = 0
        ADMIN_DOWN = 128544690
        DOWN = 2104482
        INIT = 2252048
        STATE_UNSPECIFIED = 470755401
        UP = 2715

    bfd_session_initialization_mode: str = proto.Field(
        proto.STRING,
        number=218156954,
        optional=True,
    )
    config_update_timestamp_micros: int = proto.Field(
        proto.INT64,
        number=457195569,
        optional=True,
    )
    control_packet_counts: "BfdStatusPacketCounts" = proto.Field(
        proto.MESSAGE,
        number=132573561,
        optional=True,
        message="BfdStatusPacketCounts",
    )
    control_packet_intervals: MutableSequence["PacketIntervals"] = proto.RepeatedField(
        proto.MESSAGE,
        number=500806649,
        message="PacketIntervals",
    )
    local_diagnostic: str = proto.Field(
        proto.STRING,
        number=463737083,
        optional=True,
    )
    local_state: str = proto.Field(
        proto.STRING,
        number=149195453,
        optional=True,
    )
    negotiated_local_control_tx_interval_ms: int = proto.Field(
        proto.UINT32,
        number=21768340,
        optional=True,
    )
    rx_packet: "BfdPacket" = proto.Field(
        proto.MESSAGE,
        number=505069729,
        optional=True,
        message="BfdPacket",
    )
    tx_packet: "BfdPacket" = proto.Field(
        proto.MESSAGE,
        number=111386275,
        optional=True,
        message="BfdPacket",
    )
    uptime_ms: int = proto.Field(
        proto.INT64,
        number=125398365,
        optional=True,
    )


class BfdStatusPacketCounts(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        num_rx (int):
            Number of packets received since the
            beginning of the current BFD session.

            This field is a member of `oneof`_ ``_num_rx``.
        num_rx_rejected (int):
            Number of packets received that were rejected
            because of errors since the beginning of the
            current BFD session.

            This field is a member of `oneof`_ ``_num_rx_rejected``.
        num_rx_successful (int):
            Number of packets received that were
            successfully processed since the beginning of
            the current BFD session.

            This field is a member of `oneof`_ ``_num_rx_successful``.
        num_tx (int):
            Number of packets transmitted since the
            beginning of the current BFD session.

            This field is a member of `oneof`_ ``_num_tx``.
    """

    num_rx: int = proto.Field(
        proto.UINT32,
        number=39375263,
        optional=True,
    )
    num_rx_rejected: int = proto.Field(
        proto.UINT32,
        number=281007902,
        optional=True,
    )
    num_rx_successful: int = proto.Field(
        proto.UINT32,
        number=455361850,
        optional=True,
    )
    num_tx: int = proto.Field(
        proto.UINT32,
        number=39375325,
        optional=True,
    )


class BgpRoute(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        as_paths (MutableSequence[google.cloud.compute_v1beta.types.BgpRouteAsPath]):
            [Output only] AS-PATH for the route
        communities (MutableSequence[str]):
            [Output only] BGP communities in human-readable A:B format.
        destination (google.cloud.compute_v1beta.types.BgpRouteNetworkLayerReachabilityInformation):
            [Output only] Destination IP range for the route, in
            human-readable CIDR format

            This field is a member of `oneof`_ ``_destination``.
        med (int):
            [Output only] BGP multi-exit discriminator

            This field is a member of `oneof`_ ``_med``.
        origin (str):
            [Output only] BGP origin (EGP, IGP or INCOMPLETE) Check the
            Origin enum for the list of possible values.

            This field is a member of `oneof`_ ``_origin``.
    """

    class Origin(proto.Enum):
        r"""[Output only] BGP origin (EGP, IGP or INCOMPLETE)

        Values:
            UNDEFINED_ORIGIN (0):
                A value indicating that the enum field is not
                set.
            BGP_ORIGIN_EGP (378906473):
                No description available.
            BGP_ORIGIN_IGP (378910317):
                No description available.
            BGP_ORIGIN_INCOMPLETE (452839811):
                No description available.
        """
        UNDEFINED_ORIGIN = 0
        BGP_ORIGIN_EGP = 378906473
        BGP_ORIGIN_IGP = 378910317
        BGP_ORIGIN_INCOMPLETE = 452839811

    as_paths: MutableSequence["BgpRouteAsPath"] = proto.RepeatedField(
        proto.MESSAGE,
        number=137568929,
        message="BgpRouteAsPath",
    )
    communities: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=188262983,
    )
    destination: "BgpRouteNetworkLayerReachabilityInformation" = proto.Field(
        proto.MESSAGE,
        number=180765710,
        optional=True,
        message="BgpRouteNetworkLayerReachabilityInformation",
    )
    med: int = proto.Field(
        proto.UINT32,
        number=107980,
        optional=True,
    )
    origin: str = proto.Field(
        proto.STRING,
        number=65122086,
        optional=True,
    )


class BgpRouteAsPath(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        asns (MutableSequence[int]):
            [Output only] ASNs in the path segment. When type is
            SEQUENCE, these are ordered.
        type_ (str):
            [Output only] Type of AS-PATH segment (SEQUENCE or SET)
            Check the Type enum for the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""[Output only] Type of AS-PATH segment (SEQUENCE or SET)

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            AS_PATH_TYPE_SEQUENCE (362887609):
                No description available.
            AS_PATH_TYPE_SET (302584650):
                No description available.
        """
        UNDEFINED_TYPE = 0
        AS_PATH_TYPE_SEQUENCE = 362887609
        AS_PATH_TYPE_SET = 302584650

    asns: MutableSequence[int] = proto.RepeatedField(
        proto.INT32,
        number=3003767,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class BgpRouteNetworkLayerReachabilityInformation(proto.Message):
    r"""Network Layer Reachability Information (NLRI) for a route.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        path_id (int):
            If the BGP session supports multiple paths
            (RFC 7911), the path identifier for this route.

            This field is a member of `oneof`_ ``_path_id``.
        prefix (str):
            Human readable CIDR notation for a prefix.
            E.g. 10.42.0.0/16.

            This field is a member of `oneof`_ ``_prefix``.
    """

    path_id: int = proto.Field(
        proto.UINT32,
        number=282287989,
        optional=True,
    )
    prefix: str = proto.Field(
        proto.STRING,
        number=93631122,
        optional=True,
    )


class Binding(proto.Message):
    r"""Associates ``members``, or principals, with a ``role``.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        binding_id (str):

            This field is a member of `oneof`_ ``_binding_id``.
        condition (google.cloud.compute_v1beta.types.Expr):
            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>`__.

            This field is a member of `oneof`_ ``_condition``.
        members (MutableSequence[str]):
            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}/subject/{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/workloadIdentityPools/{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-pool-id/subject/my-subject-attribute-value``.
        role (str):
            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>`__.

            This field is a member of `oneof`_ ``_role``.
    """

    binding_id: str = proto.Field(
        proto.STRING,
        number=441088277,
        optional=True,
    )
    condition: "Expr" = proto.Field(
        proto.MESSAGE,
        number=212430107,
        optional=True,
        message="Expr",
    )
    members: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=412010777,
    )
    role: str = proto.Field(
        proto.STRING,
        number=3506294,
        optional=True,
    )


class BulkInsertDiskRequest(proto.Message):
    r"""A request message for Disks.BulkInsert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bulk_insert_disk_resource_resource (google.cloud.compute_v1beta.types.BulkInsertDiskResource):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    bulk_insert_disk_resource_resource: "BulkInsertDiskResource" = proto.Field(
        proto.MESSAGE,
        number=289799382,
        message="BulkInsertDiskResource",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class BulkInsertDiskResource(proto.Message):
    r"""A transient resource used in compute.disks.bulkInsert and
    compute.regionDisks.bulkInsert. It is only used to process
    requests and is not persisted.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        source_consistency_group_policy (str):
            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

            This field is a member of `oneof`_ ``_source_consistency_group_policy``.
    """

    source_consistency_group_policy: str = proto.Field(
        proto.STRING,
        number=19616093,
        optional=True,
    )


class BulkInsertInstanceRequest(proto.Message):
    r"""A request message for Instances.BulkInsert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bulk_insert_instance_resource_resource (google.cloud.compute_v1beta.types.BulkInsertInstanceResource):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    bulk_insert_instance_resource_resource: "BulkInsertInstanceResource" = proto.Field(
        proto.MESSAGE,
        number=41427278,
        message="BulkInsertInstanceResource",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class BulkInsertInstanceResource(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        count (int):
            The maximum number of instances to create.

            This field is a member of `oneof`_ ``_count``.
        instance_properties (google.cloud.compute_v1beta.types.InstanceProperties):
            The instance properties defining the VM
            instances to be created. Required if
            sourceInstanceTemplate is not provided.

            This field is a member of `oneof`_ ``_instance_properties``.
        location_policy (google.cloud.compute_v1beta.types.LocationPolicy):
            Policy for choosing target zone. For more
            information, see Create VMs in bulk.

            This field is a member of `oneof`_ ``_location_policy``.
        min_count (int):
            The minimum number of instances to create. If no min_count
            is specified then count is used as the default value. If
            min_count instances cannot be created, then no instances
            will be created and instances already created will be
            deleted.

            This field is a member of `oneof`_ ``_min_count``.
        name_pattern (str):
            The string pattern used for the names of the VMs. Either
            name_pattern or per_instance_properties must be set. The
            pattern must contain one continuous sequence of placeholder
            hash characters (#) with each character corresponding to one
            digit of the generated instance name. Example: a
            name_pattern of inst-#### generates instance names such as
            inst-0001 and inst-0002. If existing instances in the same
            project and zone have names that match the name pattern then
            the generated instance numbers start after the biggest
            existing number. For example, if there exists an instance
            with name inst-0050, then instance names generated using the
            pattern inst-#### begin with inst-0051. The name pattern
            placeholder #...# can contain up to 18 characters.

            This field is a member of `oneof`_ ``_name_pattern``.
        per_instance_properties (MutableMapping[str, google.cloud.compute_v1beta.types.BulkInsertInstanceResourcePerInstanceProperties]):
            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.
        source_instance_template (str):
            Specifies the instance template from which to
            create instances. You may combine
            sourceInstanceTemplate with instanceProperties
            to override specific values from an existing
            instance template. Bulk API follows the
            semantics of JSON Merge Patch described by RFC
            7396. It can be a full or partial URL. For
            example, the following are all valid URLs to an
            instance template: -
            https://www.googleapis.com/compute/v1/projects/project
            /global/instanceTemplates/instanceTemplate -
            projects/project/global/instanceTemplates/instanceTemplate
            - global/instanceTemplates/instanceTemplate This
            field is optional.

            This field is a member of `oneof`_ ``_source_instance_template``.
    """

    count: int = proto.Field(
        proto.INT64,
        number=94851343,
        optional=True,
    )
    instance_properties: "InstanceProperties" = proto.Field(
        proto.MESSAGE,
        number=215355165,
        optional=True,
        message="InstanceProperties",
    )
    location_policy: "LocationPolicy" = proto.Field(
        proto.MESSAGE,
        number=465689852,
        optional=True,
        message="LocationPolicy",
    )
    min_count: int = proto.Field(
        proto.INT64,
        number=523228386,
        optional=True,
    )
    name_pattern: str = proto.Field(
        proto.STRING,
        number=413815260,
        optional=True,
    )
    per_instance_properties: MutableMapping[
        str, "BulkInsertInstanceResourcePerInstanceProperties"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=108502267,
        message="BulkInsertInstanceResourcePerInstanceProperties",
    )
    source_instance_template: str = proto.Field(
        proto.STRING,
        number=332423616,
        optional=True,
    )


class BulkInsertInstanceResourcePerInstanceProperties(proto.Message):
    r"""Per-instance properties to be set on individual instances. To
    be extended in the future.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        hostname (str):
            Specifies the hostname of the instance. More details in:
            https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention

            This field is a member of `oneof`_ ``_hostname``.
        name (str):
            This field is only temporary. It will be
            removed. Do not use it.

            This field is a member of `oneof`_ ``_name``.
    """

    hostname: str = proto.Field(
        proto.STRING,
        number=237067315,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class BulkInsertOperationStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        created_vm_count (int):
            [Output Only] Count of VMs successfully created so far.

            This field is a member of `oneof`_ ``_created_vm_count``.
        deleted_vm_count (int):
            [Output Only] Count of VMs that got deleted during rollback.

            This field is a member of `oneof`_ ``_deleted_vm_count``.
        failed_to_create_vm_count (int):
            [Output Only] Count of VMs that started creating but
            encountered an error.

            This field is a member of `oneof`_ ``_failed_to_create_vm_count``.
        status (str):
            [Output Only] Creation status of BulkInsert operation -
            information if the flow is rolling forward or rolling back.
            Check the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        target_vm_count (int):
            [Output Only] Count of VMs originally planned to be created.

            This field is a member of `oneof`_ ``_target_vm_count``.
    """

    class Status(proto.Enum):
        r"""[Output Only] Creation status of BulkInsert operation - information
        if the flow is rolling forward or rolling back.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Rolling forward - creating VMs.
            DONE (2104194):
                Done
            ROLLING_BACK (259411649):
                Rolling back - cleaning up after an error.
            STATUS_UNSPECIFIED (42133066):
                No description available.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DONE = 2104194
        ROLLING_BACK = 259411649
        STATUS_UNSPECIFIED = 42133066

    created_vm_count: int = proto.Field(
        proto.INT32,
        number=396924158,
        optional=True,
    )
    deleted_vm_count: int = proto.Field(
        proto.INT32,
        number=271756013,
        optional=True,
    )
    failed_to_create_vm_count: int = proto.Field(
        proto.INT32,
        number=58384104,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    target_vm_count: int = proto.Field(
        proto.INT32,
        number=532975733,
        optional=True,
    )


class BulkInsertRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.BulkInsert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bulk_insert_disk_resource_resource (google.cloud.compute_v1beta.types.BulkInsertDiskResource):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    bulk_insert_disk_resource_resource: "BulkInsertDiskResource" = proto.Field(
        proto.MESSAGE,
        number=289799382,
        message="BulkInsertDiskResource",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class BulkInsertRegionInstanceRequest(proto.Message):
    r"""A request message for RegionInstances.BulkInsert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bulk_insert_instance_resource_resource (google.cloud.compute_v1beta.types.BulkInsertInstanceResource):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    bulk_insert_instance_resource_resource: "BulkInsertInstanceResource" = proto.Field(
        proto.MESSAGE,
        number=41427278,
        message="BulkInsertInstanceResource",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class BulkSetLabelsDiskRequest(proto.Message):
    r"""A request message for Disks.BulkSetLabels. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bulk_zone_set_labels_request_resource (google.cloud.compute_v1beta.types.BulkZoneSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.

            This field is a member of `oneof`_ ``_resource``.
        zone (str):
            The name of the zone for this request.
    """

    bulk_zone_set_labels_request_resource: "BulkZoneSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=531305115,
        message="BulkZoneSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class BulkSetLabelsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        label_fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            The labels to set for this resource.
    """

    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )


class BulkZoneSetLabelsRequest(proto.Message):
    r"""

    Attributes:
        requests (MutableSequence[google.cloud.compute_v1beta.types.BulkSetLabelsRequest]):

    """

    requests: MutableSequence["BulkSetLabelsRequest"] = proto.RepeatedField(
        proto.MESSAGE,
        number=143613892,
        message="BulkSetLabelsRequest",
    )


class BundledLocalSsds(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        default_interface (str):
            The default disk interface if the interface
            is not specified.

            This field is a member of `oneof`_ ``_default_interface``.
        partition_count (int):
            The number of partitions.

            This field is a member of `oneof`_ ``_partition_count``.
    """

    default_interface: str = proto.Field(
        proto.STRING,
        number=17309883,
        optional=True,
    )
    partition_count: int = proto.Field(
        proto.INT32,
        number=408514426,
        optional=True,
    )


class CacheInvalidationRule(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cache_tags (MutableSequence[str]):
            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.
        host (str):
            If set, this invalidation rule will only
            apply to requests with a Host header matching
            host.

            This field is a member of `oneof`_ ``_host``.
        path (str):

            This field is a member of `oneof`_ ``_path``.
    """

    cache_tags: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29073078,
    )
    host: str = proto.Field(
        proto.STRING,
        number=3208616,
        optional=True,
    )
    path: str = proto.Field(
        proto.STRING,
        number=3433509,
        optional=True,
    )


class CacheKeyPolicy(proto.Message):
    r"""Message containing what to include in the cache key for a
    request for Cloud CDN.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        include_host (bool):
            If true, requests to different hosts will be
            cached separately.

            This field is a member of `oneof`_ ``_include_host``.
        include_http_headers (MutableSequence[str]):
            Allows HTTP request headers (by name) to be
            used in the cache key.
        include_named_cookies (MutableSequence[str]):
            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.
        include_protocol (bool):
            If true, http and https requests will be
            cached separately.

            This field is a member of `oneof`_ ``_include_protocol``.
        include_query_string (bool):
            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.

            This field is a member of `oneof`_ ``_include_query_string``.
        query_string_blacklist (MutableSequence[str]):
            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.
        query_string_whitelist (MutableSequence[str]):
            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.
    """

    include_host: bool = proto.Field(
        proto.BOOL,
        number=486867679,
        optional=True,
    )
    include_http_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=2489606,
    )
    include_named_cookies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=87316530,
    )
    include_protocol: bool = proto.Field(
        proto.BOOL,
        number=303507535,
        optional=True,
    )
    include_query_string: bool = proto.Field(
        proto.BOOL,
        number=474036639,
        optional=True,
    )
    query_string_blacklist: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=354964742,
    )
    query_string_whitelist: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=52456496,
    )


class CalendarModeAdviceRequest(proto.Message):
    r"""A request to recommend the best way to consume the specified
    resources in the future.

    Attributes:
        future_resources_specs (MutableMapping[str, google.cloud.compute_v1beta.types.FutureResourcesSpec]):
            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.
    """

    future_resources_specs: MutableMapping[str, "FutureResourcesSpec"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=255012610,
        message="FutureResourcesSpec",
    )


class CalendarModeAdviceResponse(proto.Message):
    r"""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.

    Attributes:
        recommendations (MutableSequence[google.cloud.compute_v1beta.types.CalendarModeRecommendation]):
            Recommendations where, how and when to create
            the requested resources in order to maximize
            their obtainability and minimize cost.
    """

    recommendations: MutableSequence[
        "CalendarModeRecommendation"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=324515802,
        message="CalendarModeRecommendation",
    )


class CalendarModeAdviceRpcRequest(proto.Message):
    r"""A request message for Advice.CalendarMode. See the method
    description for details.

    Attributes:
        calendar_mode_advice_request_resource (google.cloud.compute_v1beta.types.CalendarModeAdviceRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    calendar_mode_advice_request_resource: "CalendarModeAdviceRequest" = proto.Field(
        proto.MESSAGE,
        number=162098922,
        message="CalendarModeAdviceRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class CalendarModeRecommendation(proto.Message):
    r"""A single recommendation to create requested resources.
    Contains detailed recommendations for every future resources
    specification specified in CalendarModeAdviceRequest.

    Attributes:
        recommendations_per_spec (MutableMapping[str, google.cloud.compute_v1beta.types.FutureResourcesRecommendation]):
            Recommendations for every future resource
            specification passed in
            CalendarModeAdviceRequest. Keys of the map
            correspond to keys specified in the request.
    """

    recommendations_per_spec: MutableMapping[
        str, "FutureResourcesRecommendation"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=61331554,
        message="FutureResourcesRecommendation",
    )


class CancelFutureReservationRequest(proto.Message):
    r"""A request message for FutureReservations.Cancel. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        future_reservation (str):
            Name of the future reservation to retrieve.
            Name should conform to RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request. Name
            should conform to RFC1035.
    """

    future_reservation: str = proto.Field(
        proto.STRING,
        number=56206160,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class CancelInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagerResizeRequests.Cancel. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. The
            name should conform to RFC1035 or be a resource
            ID.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resize_request (str):
            The name of the resize request to cancel. The
            name should conform to RFC1035 or be a resource
            ID.
        zone (str):
            The name of the zone where the managed
            instance group is located. The name should
            conform to RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resize_request: str = proto.Field(
        proto.STRING,
        number=216941060,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class CancelRegionInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagerResizeRequests.Cancel. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. Name
            should conform to RFC1035 or be a resource ID.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region scoping this request.
            Name should conform to RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resize_request (str):
            The name of the resize request to cancel.
            Name should conform to RFC1035 or be a resource
            ID.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resize_request: str = proto.Field(
        proto.STRING,
        number=216941060,
    )


class CircuitBreakers(proto.Message):
    r"""Settings controlling the volume of requests, connections and
    retries to this backend service.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        connect_timeout (google.cloud.compute_v1beta.types.Duration):
            The timeout for new network connections to
            hosts.

            This field is a member of `oneof`_ ``_connect_timeout``.
        max_connections (int):
            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.

            This field is a member of `oneof`_ ``_max_connections``.
        max_pending_requests (int):
            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.

            This field is a member of `oneof`_ ``_max_pending_requests``.
        max_requests (int):
            The maximum number of parallel requests that
            allowed to the backend service. If not
            specified, there is no limit.

            This field is a member of `oneof`_ ``_max_requests``.
        max_requests_per_connection (int):
            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.

            This field is a member of `oneof`_ ``_max_requests_per_connection``.
        max_retries (int):
            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.

            This field is a member of `oneof`_ ``_max_retries``.
    """

    connect_timeout: "Duration" = proto.Field(
        proto.MESSAGE,
        number=495510284,
        optional=True,
        message="Duration",
    )
    max_connections: int = proto.Field(
        proto.INT32,
        number=110652154,
        optional=True,
    )
    max_pending_requests: int = proto.Field(
        proto.INT32,
        number=375558887,
        optional=True,
    )
    max_requests: int = proto.Field(
        proto.INT32,
        number=28097599,
        optional=True,
    )
    max_requests_per_connection: int = proto.Field(
        proto.INT32,
        number=361630528,
        optional=True,
    )
    max_retries: int = proto.Field(
        proto.INT32,
        number=55546219,
        optional=True,
    )


class CloneRulesFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.CloneRules. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        source_firewall_policy (str):
            The firewall policy from which to copy rules.

            This field is a member of `oneof`_ ``_source_firewall_policy``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    source_firewall_policy: str = proto.Field(
        proto.STRING,
        number=25013549,
        optional=True,
    )


class CloneRulesNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.CloneRules. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        source_firewall_policy (str):
            The firewall policy from which to copy rules.

            This field is a member of `oneof`_ ``_source_firewall_policy``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    source_firewall_policy: str = proto.Field(
        proto.STRING,
        number=25013549,
        optional=True,
    )


class CloneRulesRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.CloneRules. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        source_firewall_policy (str):
            The firewall policy from which to copy rules.

            This field is a member of `oneof`_ ``_source_firewall_policy``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    source_firewall_policy: str = proto.Field(
        proto.STRING,
        number=25013549,
        optional=True,
    )


class Commitment(proto.Message):
    r"""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


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_renew (bool):
            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.

            This field is a member of `oneof`_ ``_auto_renew``.
        category (str):
            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 as VCPU 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.
            Check the Category enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_category``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        custom_end_timestamp (str):
            [Input Only] Optional, specifies the requested commitment
            end time in RFC3339 text format. Use this option when the
            desired commitment's end date is later than the start date +
            term duration.

            This field is a member of `oneof`_ ``_custom_end_timestamp``.
        description (str):
            An optional description of the commitment.
            You can provide this property when you create
            the resource.

            This field is a member of `oneof`_ ``_description``.
        end_timestamp (str):
            [Output Only] Commitment end time in RFC3339 text format.

            This field is a member of `oneof`_ ``_end_timestamp``.
        existing_reservations (MutableSequence[str]):

        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#commitment for commitments.

            This field is a member of `oneof`_ ``_kind``.
        license_resource (google.cloud.compute_v1beta.types.LicenseResourceCommitment):
            The license specification required as part of
            a license commitment.

            This field is a member of `oneof`_ ``_license_resource``.
        merge_source_commitments (MutableSequence[str]):
            The list of source commitments that you are
            merging to create the new merged commitment. For
            more information, see Merging commitments.
        name (str):
            Name of the commitment. You must specify a name when you
            purchase the commitment. 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.

            This field is a member of `oneof`_ ``_name``.
        plan (str):
            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), and THIRTY_SIX_MONTH
            (3 years). Check the Plan enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_plan``.
        region (str):
            [Output Only] URL of the region where the commitment and
            committed resources are located.

            This field is a member of `oneof`_ ``_region``.
        reservations (MutableSequence[google.cloud.compute_v1beta.types.Reservation]):
            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 the existingReservations
            property instead.
        resource_status (google.cloud.compute_v1beta.types.CommitmentResourceStatus):
            [Output Only] Status information for Commitment resource.

            This field is a member of `oneof`_ ``_resource_status``.
        resources (MutableSequence[google.cloud.compute_v1beta.types.ResourceCommitment]):
            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.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        split_source_commitment (str):
            The source commitment from which you are
            transferring resources to create the new split
            commitment. For more information, see Split
            commitments.

            This field is a member of `oneof`_ ``_split_source_commitment``.
        start_timestamp (str):
            [Output Only] Commitment start time in RFC3339 text format.

            This field is a member of `oneof`_ ``_start_timestamp``.
        status (str):
            [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, or EXPIRED. Check the Status enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        status_message (str):
            [Output Only] An optional, human-readable explanation of the
            status.

            This field is a member of `oneof`_ ``_status_message``.
        type_ (str):
            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, 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.
            Check the Type enum for the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Category(proto.Enum):
        r"""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 as VCPU 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.

        Values:
            UNDEFINED_CATEGORY (0):
                A value indicating that the enum field is not
                set.
            CATEGORY_UNSPECIFIED (509189462):
                No description available.
            LICENSE (347869217):
                No description available.
            MACHINE (469553191):
                No description available.
        """
        UNDEFINED_CATEGORY = 0
        CATEGORY_UNSPECIFIED = 509189462
        LICENSE = 347869217
        MACHINE = 469553191

    class Plan(proto.Enum):
        r"""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), and
        THIRTY_SIX_MONTH (3 years).

        Values:
            UNDEFINED_PLAN (0):
                A value indicating that the enum field is not
                set.
            INVALID (530283991):
                No description available.
            THIRTY_SIX_MONTH (266295942):
                No description available.
            TWELVE_MONTH (173083962):
                No description available.
        """
        UNDEFINED_PLAN = 0
        INVALID = 530283991
        THIRTY_SIX_MONTH = 266295942
        TWELVE_MONTH = 173083962

    class Status(proto.Enum):
        r"""[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, or EXPIRED.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                No description available.
            CANCELLED (41957681):
                Deprecate CANCELED status. Will use separate
                status to differentiate cancel by mergeCud or
                manual cancellation.
            CREATING (455564985):
                No description available.
            EXPIRED (482489093):
                No description available.
            NOT_YET_ACTIVE (20607337):
                No description available.
        """
        UNDEFINED_STATUS = 0
        ACTIVE = 314733318
        CANCELLED = 41957681
        CREATING = 455564985
        EXPIRED = 482489093
        NOT_YET_ACTIVE = 20607337

    class Type(proto.Enum):
        r"""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, 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.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            ACCELERATOR_OPTIMIZED (280848403):
                No description available.
            ACCELERATOR_OPTIMIZED_A3 (158574526):
                No description available.
            ACCELERATOR_OPTIMIZED_A3_MEGA (156517459):
                No description available.
            ACCELERATOR_OPTIMIZED_A3_ULTRA (27812811):
                No description available.
            ACCELERATOR_OPTIMIZED_A4 (158574527):
                No description available.
            COMPUTE_OPTIMIZED (158349023):
                No description available.
            COMPUTE_OPTIMIZED_C2D (383246453):
                No description available.
            COMPUTE_OPTIMIZED_C3 (428004784):
                No description available.
            COMPUTE_OPTIMIZED_C3D (383246484):
                No description available.
            COMPUTE_OPTIMIZED_H3 (428004939):
                No description available.
            COMPUTE_OPTIMIZED_H4D (383251320):
                No description available.
            GENERAL_PURPOSE (299793543):
                No description available.
            GENERAL_PURPOSE_C4 (301911817):
                No description available.
            GENERAL_PURPOSE_C4A (232460888):
                No description available.
            GENERAL_PURPOSE_C4D (232460891):
                No description available.
            GENERAL_PURPOSE_E2 (301911877):
                No description available.
            GENERAL_PURPOSE_N2 (301912156):
                No description available.
            GENERAL_PURPOSE_N2D (232471400):
                No description available.
            GENERAL_PURPOSE_N4 (301912158):
                No description available.
            GENERAL_PURPOSE_T2D (232477166):
                No description available.
            GRAPHICS_OPTIMIZED (68500563):
                No description available.
            MEMORY_OPTIMIZED (281753417):
                No description available.
            MEMORY_OPTIMIZED_M3 (276301372):
                No description available.
            MEMORY_OPTIMIZED_M4 (276301373):
                No description available.
            MEMORY_OPTIMIZED_M4_6TB (210543650):
                No description available.
            MEMORY_OPTIMIZED_X4_16TB (183089120):
                No description available.
            MEMORY_OPTIMIZED_X4_24TB (183116989):
                No description available.
            MEMORY_OPTIMIZED_X4_32TB (183144858):
                No description available.
            STORAGE_OPTIMIZED_Z3 (316796085):
                No description available.
            TYPE_UNSPECIFIED (437714322):
                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.
        """
        UNDEFINED_TYPE = 0
        ACCELERATOR_OPTIMIZED = 280848403
        ACCELERATOR_OPTIMIZED_A3 = 158574526
        ACCELERATOR_OPTIMIZED_A3_MEGA = 156517459
        ACCELERATOR_OPTIMIZED_A3_ULTRA = 27812811
        ACCELERATOR_OPTIMIZED_A4 = 158574527
        COMPUTE_OPTIMIZED = 158349023
        COMPUTE_OPTIMIZED_C2D = 383246453
        COMPUTE_OPTIMIZED_C3 = 428004784
        COMPUTE_OPTIMIZED_C3D = 383246484
        COMPUTE_OPTIMIZED_H3 = 428004939
        COMPUTE_OPTIMIZED_H4D = 383251320
        GENERAL_PURPOSE = 299793543
        GENERAL_PURPOSE_C4 = 301911817
        GENERAL_PURPOSE_C4A = 232460888
        GENERAL_PURPOSE_C4D = 232460891
        GENERAL_PURPOSE_E2 = 301911877
        GENERAL_PURPOSE_N2 = 301912156
        GENERAL_PURPOSE_N2D = 232471400
        GENERAL_PURPOSE_N4 = 301912158
        GENERAL_PURPOSE_T2D = 232477166
        GRAPHICS_OPTIMIZED = 68500563
        MEMORY_OPTIMIZED = 281753417
        MEMORY_OPTIMIZED_M3 = 276301372
        MEMORY_OPTIMIZED_M4 = 276301373
        MEMORY_OPTIMIZED_M4_6TB = 210543650
        MEMORY_OPTIMIZED_X4_16TB = 183089120
        MEMORY_OPTIMIZED_X4_24TB = 183116989
        MEMORY_OPTIMIZED_X4_32TB = 183144858
        STORAGE_OPTIMIZED_Z3 = 316796085
        TYPE_UNSPECIFIED = 437714322

    auto_renew: bool = proto.Field(
        proto.BOOL,
        number=495520765,
        optional=True,
    )
    category: str = proto.Field(
        proto.STRING,
        number=50511102,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    custom_end_timestamp: str = proto.Field(
        proto.STRING,
        number=181770852,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    end_timestamp: str = proto.Field(
        proto.STRING,
        number=468096690,
        optional=True,
    )
    existing_reservations: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=493028443,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    license_resource: "LicenseResourceCommitment" = proto.Field(
        proto.MESSAGE,
        number=437955148,
        optional=True,
        message="LicenseResourceCommitment",
    )
    merge_source_commitments: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=188093761,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    plan: str = proto.Field(
        proto.STRING,
        number=3443497,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    reservations: MutableSequence["Reservation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=399717927,
        message="Reservation",
    )
    resource_status: "CommitmentResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=249429315,
        optional=True,
        message="CommitmentResourceStatus",
    )
    resources: MutableSequence["ResourceCommitment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=164412965,
        message="ResourceCommitment",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    split_source_commitment: str = proto.Field(
        proto.STRING,
        number=402611156,
        optional=True,
    )
    start_timestamp: str = proto.Field(
        proto.STRING,
        number=83645817,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    status_message: str = proto.Field(
        proto.STRING,
        number=297428154,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class CommitmentAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.CommitmentsScopedList]):
            A list of CommitmentsScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#commitmentAggregatedList for aggregated lists of
            commitments.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "CommitmentsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="CommitmentsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class CommitmentList(proto.Message):
    r"""Contains a list of Commitment resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Commitment]):
            A list of Commitment resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#commitmentList for lists of commitments.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Commitment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Commitment",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class CommitmentResourceStatus(proto.Message):
    r"""[Output Only] Contains output only fields.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        custom_term_eligibility_end_timestamp (str):
            [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.

            This field is a member of `oneof`_ ``_custom_term_eligibility_end_timestamp``.
    """

    custom_term_eligibility_end_timestamp: str = proto.Field(
        proto.STRING,
        number=363976187,
        optional=True,
    )


class CommitmentsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        commitments (MutableSequence[google.cloud.compute_v1beta.types.Commitment]):
            [Output Only] The list of commitments contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of commitments when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    commitments: MutableSequence["Commitment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=450664446,
        message="Commitment",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ConfidentialInstanceConfig(proto.Message):
    r"""A set of Confidential Instance options.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        confidential_instance_type (str):
            Defines the type of technology used by the
            confidential instance. Check the
            ConfidentialInstanceType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_confidential_instance_type``.
        enable_confidential_compute (bool):
            Defines whether the instance should have
            confidential compute enabled.

            This field is a member of `oneof`_ ``_enable_confidential_compute``.
    """

    class ConfidentialInstanceType(proto.Enum):
        r"""Defines the type of technology used by the confidential
        instance.

        Values:
            UNDEFINED_CONFIDENTIAL_INSTANCE_TYPE (0):
                A value indicating that the enum field is not
                set.
            CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED (115021829):
                No type specified. Do not use this value.
            SEV (81988):
                AMD Secure Encrypted Virtualization.
            SEV_SNP (21753562):
                AMD Secure Encrypted Virtualization - Secure
                Nested Paging.
            TDX (82920):
                Intel Trust Domain eXtension.
        """
        UNDEFINED_CONFIDENTIAL_INSTANCE_TYPE = 0
        CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED = 115021829
        SEV = 81988
        SEV_SNP = 21753562
        TDX = 82920

    confidential_instance_type: str = proto.Field(
        proto.STRING,
        number=43484717,
        optional=True,
    )
    enable_confidential_compute: bool = proto.Field(
        proto.BOOL,
        number=102135228,
        optional=True,
    )


class ConnectionDraining(proto.Message):
    r"""Message containing connection draining configuration.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        draining_timeout_sec (int):
            Configures a duration timeout for existing
            requests on a removed backend instance. For
            supported load balancers and protocols, as
            described in Enabling connection draining.

            This field is a member of `oneof`_ ``_draining_timeout_sec``.
    """

    draining_timeout_sec: int = proto.Field(
        proto.INT32,
        number=225127070,
        optional=True,
    )


class ConsistentHashLoadBalancerSettings(proto.Message):
    r"""This message defines settings for a consistent hash style
    load balancer.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        http_cookie (google.cloud.compute_v1beta.types.ConsistentHashLoadBalancerSettingsHttpCookie):
            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.

            This field is a member of `oneof`_ ``_http_cookie``.
        http_header_name (str):
            The hash based on the value of the specified header field.
            This field is applicable if the sessionAffinity is set to
            HEADER_FIELD.

            This field is a member of `oneof`_ ``_http_header_name``.
        minimum_ring_size (int):
            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.

            This field is a member of `oneof`_ ``_minimum_ring_size``.
    """

    http_cookie: "ConsistentHashLoadBalancerSettingsHttpCookie" = proto.Field(
        proto.MESSAGE,
        number=6673915,
        optional=True,
        message="ConsistentHashLoadBalancerSettingsHttpCookie",
    )
    http_header_name: str = proto.Field(
        proto.STRING,
        number=234798022,
        optional=True,
    )
    minimum_ring_size: int = proto.Field(
        proto.INT64,
        number=234380735,
        optional=True,
    )


class ConsistentHashLoadBalancerSettingsHttpCookie(proto.Message):
    r"""The information about the HTTP Cookie on which the hash
    function is based for load balancing policies that use a
    consistent hash.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of the cookie.

            This field is a member of `oneof`_ ``_name``.
        path (str):
            Path to set for the cookie.

            This field is a member of `oneof`_ ``_path``.
        ttl (google.cloud.compute_v1beta.types.Duration):
            Lifetime of the cookie.

            This field is a member of `oneof`_ ``_ttl``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    path: str = proto.Field(
        proto.STRING,
        number=3433509,
        optional=True,
    )
    ttl: "Duration" = proto.Field(
        proto.MESSAGE,
        number=115180,
        optional=True,
        message="Duration",
    )


class CopyRulesOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.CopyRules.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
        source_security_policy (str):
            The security policy from which to copy rules.

            This field is a member of `oneof`_ ``_source_security_policy``.
    """

    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    source_security_policy: str = proto.Field(
        proto.STRING,
        number=234793709,
        optional=True,
    )


class CorsPolicy(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        allow_credentials (bool):
            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.

            This field is a member of `oneof`_ ``_allow_credentials``.
        allow_headers (MutableSequence[str]):
            Specifies the content for the
            Access-Control-Allow-Headers header.
        allow_methods (MutableSequence[str]):
            Specifies the content for the
            Access-Control-Allow-Methods header.
        allow_origin_regexes (MutableSequence[str]):
            Specifies a regular expression that matches allowed origins.
            For more information, see regular expression syntax . An
            origin is allowed if it matches either an item in
            allowOrigins or an item in allowOriginRegexes. Regular
            expressions can only be used when the loadBalancingScheme is
            set to INTERNAL_SELF_MANAGED.
        allow_origins (MutableSequence[str]):
            Specifies the list of origins that is allowed
            to do CORS requests. An origin is allowed if it
            matches either an item in allowOrigins or an
            item in allowOriginRegexes.
        disabled (bool):
            If true, disables the CORS policy. The
            default value is false, which indicates that the
            CORS policy is in effect.

            This field is a member of `oneof`_ ``_disabled``.
        expose_headers (MutableSequence[str]):
            Specifies the content for the
            Access-Control-Expose-Headers header.
        max_age (int):
            Specifies how long results of a preflight
            request can be cached in seconds. This field
            translates to the Access-Control-Max-Age header.

            This field is a member of `oneof`_ ``_max_age``.
    """

    allow_credentials: bool = proto.Field(
        proto.BOOL,
        number=481263366,
        optional=True,
    )
    allow_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=45179024,
    )
    allow_methods: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=205405372,
    )
    allow_origin_regexes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=215385810,
    )
    allow_origins: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=194914071,
    )
    disabled: bool = proto.Field(
        proto.BOOL,
        number=270940796,
        optional=True,
    )
    expose_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=247604747,
    )
    max_age: int = proto.Field(
        proto.INT32,
        number=307559332,
        optional=True,
    )


class CreateInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.CreateInstances.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        instance_group_managers_create_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersCreateInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. The request ID must be a valid UUID
            with the exception that zero UUID is not
            supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located. It should conform to
            RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_create_instances_request_resource: "InstanceGroupManagersCreateInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=24558867,
        message="InstanceGroupManagersCreateInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class CreateInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.CreateInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where the managed
            instance group is located. It should conform to
            RFC1035.
        region_instance_group_managers_create_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersCreateInstancesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. The request ID must be a valid UUID
            with the exception that zero UUID is not
            supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_create_instances_request_resource: "RegionInstanceGroupManagersCreateInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=359014280,
        message="RegionInstanceGroupManagersCreateInstancesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class CreateMembersInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.CreateMembers. See
    the method description for details.

    Attributes:
        interconnect_group (str):
            Name of the group resource to create members
            for.
        interconnect_groups_create_members_request_resource (google.cloud.compute_v1beta.types.InterconnectGroupsCreateMembersRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
    """

    interconnect_group: str = proto.Field(
        proto.STRING,
        number=388651918,
    )
    interconnect_groups_create_members_request_resource: "InterconnectGroupsCreateMembersRequest" = proto.Field(
        proto.MESSAGE,
        number=348323437,
        message="InterconnectGroupsCreateMembersRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class CreateSnapshotDiskRequest(proto.Message):
    r"""A request message for Disks.CreateSnapshot. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            Name of the persistent disk to snapshot.
        guest_flush (bool):
            [Input Only] Whether to attempt an application consistent
            snapshot by informing the OS to prepare for the snapshot
            process.

            This field is a member of `oneof`_ ``_guest_flush``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot_resource (google.cloud.compute_v1beta.types.Snapshot):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    guest_flush: bool = proto.Field(
        proto.BOOL,
        number=385550813,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot_resource: "Snapshot" = proto.Field(
        proto.MESSAGE,
        number=481319977,
        message="Snapshot",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class CreateSnapshotRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.CreateSnapshot. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            Name of the regional persistent disk to
            snapshot.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot_resource (google.cloud.compute_v1beta.types.Snapshot):
            The body resource for this request
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot_resource: "Snapshot" = proto.Field(
        proto.MESSAGE,
        number=481319977,
        message="Snapshot",
    )


class CrossSiteNetwork(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of the cross-site
            network.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#crossSiteNetwork for cross-site networks.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class CrossSiteNetworkList(proto.Message):
    r"""Response to the list request that contains a list of
    cross-site networks.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.CrossSiteNetwork]):
            A list of CrossSiteNetwork resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#crossSiteNetwork for cross-site networks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["CrossSiteNetwork"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="CrossSiteNetwork",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class CustomErrorResponsePolicy(proto.Message):
    r"""Specifies the custom error response policy that must be
    applied when the backend service or backend bucket responds with
    an error.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        error_response_rules (MutableSequence[google.cloud.compute_v1beta.types.CustomErrorResponsePolicyCustomErrorResponseRule]):
            Specifies rules for returning error
            responses. In a given policy, if you specify
            rules for both a range of error codes as well as
            rules for specific error codes then rules with
            specific error codes have a higher priority. For
            example, assume that you configure a rule for
            401 (Un-authorized) code, and another for all 4
            series error codes (4XX). If the backend service
            returns a 401, then the rule for 401 will be
            applied. However if the backend service returns
            a 403, the rule for 4xx takes effect.
        error_service (str):
            The full or partial URL to the BackendBucket resource that
            contains the custom error content. Examples are: -
            https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket
            -
            compute/v1/projects/project/global/backendBuckets/myBackendBucket
            - global/backendBuckets/myBackendBucket If errorService is
            not specified at lower levels like pathMatcher, pathRule and
            routeRule, an errorService specified at a higher level in
            the UrlMap will be used. If
            UrlMap.defaultCustomErrorResponsePolicy contains one or more
            errorResponseRules[], it must specify errorService. If load
            balancer cannot reach the backendBucket, a simple Not Found
            Error will be returned, with the original response code (or
            overrideResponseCode if configured). errorService is not
            supported for internal or regional HTTP/HTTPS load
            balancers.

            This field is a member of `oneof`_ ``_error_service``.
    """

    error_response_rules: MutableSequence[
        "CustomErrorResponsePolicyCustomErrorResponseRule"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=14620304,
        message="CustomErrorResponsePolicyCustomErrorResponseRule",
    )
    error_service: str = proto.Field(
        proto.STRING,
        number=164214654,
        optional=True,
    )


class CustomErrorResponsePolicyCustomErrorResponseRule(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        match_response_codes (MutableSequence[str]):
            Valid values include: - A number between 400
            and 599: For example 401 or 503, in which case
            the load balancer applies the policy if the
            error code exactly matches this value. - 5xx:
            Load Balancer will apply the policy if the
            backend service responds with any response code
            in the range of 500 to 599. - 4xx: Load Balancer
            will apply the policy if the backend service
            responds with any response code in the range of
            400 to 499. Values must be unique within
            matchResponseCodes and across all
            errorResponseRules of CustomErrorResponsePolicy.
        override_response_code (int):
            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.

            This field is a member of `oneof`_ ``_override_response_code``.
        path (str):
            The full path to a file within backendBucket
            . For example: /errors/defaultError.html path
            must start with a leading slash. path cannot
            have trailing slashes. If the file is not
            available in backendBucket or the load balancer
            cannot reach the BackendBucket, a simple Not
            Found Error is returned to the client. The value
            must be from 1 to 1024 characters

            This field is a member of `oneof`_ ``_path``.
    """

    match_response_codes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=104973410,
    )
    override_response_code: int = proto.Field(
        proto.INT32,
        number=530328568,
        optional=True,
    )
    path: str = proto.Field(
        proto.STRING,
        number=3433509,
        optional=True,
    )


class CustomerEncryptionKey(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        kms_key_name (str):
            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

            This field is a member of `oneof`_ ``_kms_key_name``.
        kms_key_service_account (str):
            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/

            This field is a member of `oneof`_ ``_kms_key_service_account``.
        raw_key (str):
            Specifies a 256-bit customer-supplied
            encryption key, encoded in RFC 4648 base64 to
            either encrypt or decrypt this resource. You can
            provide either the rawKey or the
            rsaEncryptedKey. For example: "rawKey":
            "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=".

            This field is a member of `oneof`_ ``_raw_key``.
        rsa_encrypted_key (str):
            Specifies an RFC 4648 base64 encoded,
            RSA-wrapped 2048-bit customer-supplied
            encryption key to either encrypt or decrypt this
            resource. You can provide either the rawKey or
            the rsaEncryptedKey. For example:
            "rsaEncryptedKey":
            "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH
            z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD
            D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe=="
            The key must meet the following requirements
            before you can provide it to Compute Engine: 1.
            The key is wrapped using a RSA public key
            certificate provided by Google. 2. After being
            wrapped, the key must be encoded in RFC 4648
            base64 encoding. Gets the RSA public key
            certificate provided by Google at:
            https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem

            This field is a member of `oneof`_ ``_rsa_encrypted_key``.
        sha256 (str):
            [Output only] The RFC 4648 base64 encoded SHA-256 hash of
            the customer-supplied encryption key that protects this
            resource.

            This field is a member of `oneof`_ ``_sha256``.
    """

    kms_key_name: str = proto.Field(
        proto.STRING,
        number=484373913,
        optional=True,
    )
    kms_key_service_account: str = proto.Field(
        proto.STRING,
        number=209986261,
        optional=True,
    )
    raw_key: str = proto.Field(
        proto.STRING,
        number=449196488,
        optional=True,
    )
    rsa_encrypted_key: str = proto.Field(
        proto.STRING,
        number=335487397,
        optional=True,
    )
    sha256: str = proto.Field(
        proto.STRING,
        number=170112551,
        optional=True,
    )


class CustomerEncryptionKeyProtectedDisk(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Decrypts data associated with the disk with a
            customer-supplied encryption key.

            This field is a member of `oneof`_ ``_disk_encryption_key``.
        source (str):
            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

            This field is a member of `oneof`_ ``_source``.
    """

    disk_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=271660677,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source: str = proto.Field(
        proto.STRING,
        number=177235995,
        optional=True,
    )


class Data(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        key (str):
            [Output Only] A key that provides more detail on the warning
            being returned. For example, for warnings where there are no
            results in a list request for a particular zone, this key
            might be scope and the key value might be the zone name.
            Other examples might be a key indicating a deprecated
            resource and a suggested replacement, or a warning about
            invalid network settings (for example, if an instance
            attempts to perform IP forwarding but is not enabled for IP
            forwarding).

            This field is a member of `oneof`_ ``_key``.
        value (str):
            [Output Only] A warning data value corresponding to the key.

            This field is a member of `oneof`_ ``_value``.
    """

    key: str = proto.Field(
        proto.STRING,
        number=106079,
        optional=True,
    )
    value: str = proto.Field(
        proto.STRING,
        number=111972721,
        optional=True,
    )


class Date(proto.Message):
    r"""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


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        day (int):
            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.

            This field is a member of `oneof`_ ``_day``.
        month (int):
            Month of a year. Must be from 1 to 12, or 0
            to specify a year without a month and day.

            This field is a member of `oneof`_ ``_month``.
        year (int):
            Year of the date. Must be from 1 to 9999, or
            0 to specify a date without a year.

            This field is a member of `oneof`_ ``_year``.
    """

    day: int = proto.Field(
        proto.INT32,
        number=99228,
        optional=True,
    )
    month: int = proto.Field(
        proto.INT32,
        number=104080000,
        optional=True,
    )
    year: int = proto.Field(
        proto.INT32,
        number=3704893,
        optional=True,
    )


class DeleteAccessConfigInstanceRequest(proto.Message):
    r"""A request message for Instances.DeleteAccessConfig. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_config (str):
            The name of the access config to delete.
        instance (str):
            The instance name for this request.
        network_interface (str):
            The name of the network interface.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    access_config: str = proto.Field(
        proto.STRING,
        number=72856189,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    network_interface: str = proto.Field(
        proto.STRING,
        number=365387880,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteAddressRequest(proto.Message):
    r"""A request message for Addresses.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            Name of the address resource to delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteAutoscalerRequest(proto.Message):
    r"""A request message for Autoscalers.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler (str):
            Name of the autoscaler to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_bucket (str):
            Name of the BackendBucket resource to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_bucket: str = proto.Field(
        proto.STRING,
        number=91714037,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to
            delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteCrossSiteNetworkRequest(proto.Message):
    r"""A request message for CrossSiteNetworks.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cross_site_network (str):
            Name of the cross-site network to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteDiskRequest(proto.Message):
    r"""A request message for Disks.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            Name of the persistent disk to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteExternalVpnGatewayRequest(proto.Message):
    r"""A request message for ExternalVpnGateways.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        external_vpn_gateway (str):
            Name of the externalVpnGateways to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    external_vpn_gateway: str = proto.Field(
        proto.STRING,
        number=109898629,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to delete.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteFirewallRequest(proto.Message):
    r"""A request message for Firewalls.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall (str):
            Name of the firewall rule to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall: str = proto.Field(
        proto.STRING,
        number=511016192,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteForwardingRuleRequest(proto.Message):
    r"""A request message for ForwardingRules.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteFutureReservationRequest(proto.Message):
    r"""A request message for FutureReservations.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        future_reservation (str):
            Name of the future reservation to retrieve.
            Name should conform to RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request. Name
            should conform to RFC1035.
    """

    future_reservation: str = proto.Field(
        proto.STRING,
        number=56206160,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteGlobalAddressRequest(proto.Message):
    r"""A request message for GlobalAddresses.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            Name of the address resource to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteGlobalForwardingRuleRequest(proto.Message):
    r"""A request message for GlobalForwardingRules.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource to
            delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteGlobalNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for GlobalNetworkEndpointGroups.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group to
            delete. It should comply with RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteGlobalOperationRequest(proto.Message):
    r"""A request message for GlobalOperations.Delete. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to delete, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class DeleteGlobalOperationResponse(proto.Message):
    r"""A response message for GlobalOperations.Delete. See the
    method description for details.

    """


class DeleteGlobalOrganizationOperationRequest(proto.Message):
    r"""A request message for GlobalOrganizationOperations.Delete.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        operation (str):
            Name of the Operations resource to delete, or
            its unique numeric identifier.
        parent_id (str):
            Parent ID for this request.

            This field is a member of `oneof`_ ``_parent_id``.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )


class DeleteGlobalOrganizationOperationResponse(proto.Message):
    r"""A response message for GlobalOrganizationOperations.Delete.
    See the method description for details.

    """


class DeleteGlobalPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for GlobalPublicDelegatedPrefixes.Delete.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            Name of the PublicDelegatedPrefix resource to
            delete.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteHealthCheckRequest(proto.Message):
    r"""A request message for HealthChecks.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteImageRequest(proto.Message):
    r"""A request message for Images.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        image (str):
            Name of the image resource to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    image: str = proto.Field(
        proto.STRING,
        number=100313435,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group to
            delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagerResizeRequests.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. The
            name should conform to RFC1035 or be a resource
            ID.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resize_request (str):
            The name of the resize request to delete. The
            name should conform to RFC1035 or be a resource
            ID.
        zone (str):
            The name of the zone where the managed
            instance group is located. The name should
            conform to RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resize_request: str = proto.Field(
        proto.STRING,
        number=216941060,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteInstanceGroupRequest(proto.Message):
    r"""A request message for InstanceGroups.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group (str):
            The name of the instance group to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the instance group
            is located.
    """

    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteInstanceRequest(proto.Message):
    r"""A request message for Instances.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance resource to delete.
        no_graceful_shutdown (bool):
            If set to true, Graceful Shutdown is skipped.

            This field is a member of `oneof`_ ``_no_graceful_shutdown``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    no_graceful_shutdown: bool = proto.Field(
        proto.BOOL,
        number=336255890,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteInstanceTemplateRequest(proto.Message):
    r"""A request message for InstanceTemplates.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            The name of the instance template to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.DeleteInstances.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_delete_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersDeleteInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_delete_instances_request_resource: "InstanceGroupManagersDeleteInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=166421252,
        message="InstanceGroupManagersDeleteInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.DeleteInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_delete_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersDeleteInstancesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_delete_instances_request_resource: "RegionInstanceGroupManagersDeleteInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=500876665,
        message="RegionInstanceGroupManagersDeleteInstancesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteInstantSnapshotRequest(proto.Message):
    r"""A request message for InstantSnapshots.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instant_snapshot (str):
            Name of the InstantSnapshot resource to
            delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instant_snapshot: str = proto.Field(
        proto.STRING,
        number=391638626,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for InterconnectAttachmentGroups.Delete.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_attachment_group (str):
            Name of the InterconnectAttachmentGroup
            resource to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect_attachment_group: str = proto.Field(
        proto.STRING,
        number=75905012,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteInterconnectAttachmentRequest(proto.Message):
    r"""A request message for InterconnectAttachments.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_attachment (str):
            Name of the interconnect attachment to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect_attachment: str = proto.Field(
        proto.STRING,
        number=308135284,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_group (str):
            Name of the InterconnectGroup resource to
            delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect_group: str = proto.Field(
        proto.STRING,
        number=388651918,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect (str):
            Name of the interconnect to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteLicenseRequest(proto.Message):
    r"""A request message for Licenses.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        license_ (str):
            Name of the license resource to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    license_: str = proto.Field(
        proto.STRING,
        number=166757441,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteMachineImageRequest(proto.Message):
    r"""A request message for MachineImages.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        machine_image (str):
            The name of the machine image to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    machine_image: str = proto.Field(
        proto.STRING,
        number=69189475,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteNetworkAttachmentRequest(proto.Message):
    r"""A request message for NetworkAttachments.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_attachment (str):
            Name of the NetworkAttachment resource to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_attachment: str = proto.Field(
        proto.STRING,
        number=224644052,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteNetworkEdgeSecurityServiceRequest(proto.Message):
    r"""A request message for NetworkEdgeSecurityServices.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_edge_security_service (str):
            Name of the network edge security service to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_edge_security_service: str = proto.Field(
        proto.STRING,
        number=157011879,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for NetworkEndpointGroups.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group to
            delete. It should comply with RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the network
            endpoint group is located. It should comply with
            RFC1035.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteNetworkInterfaceInstanceRequest(proto.Message):
    r"""A request message for Instances.DeleteNetworkInterface. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            The instance name for this request stored as resource_id.
            Name should conform to RFC1035 or be an unsigned long
            integer.
        network_interface_name (str):
            The name of the dynamic network interface to
            be deleted from the instance.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    network_interface_name: str = proto.Field(
        proto.STRING,
        number=381342722,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteNetworkRequest(proto.Message):
    r"""A request message for Networks.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network (str):
            Name of the network to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_group (str):
            Name of the NodeGroup resource to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteNodeTemplateRequest(proto.Message):
    r"""A request message for NodeTemplates.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_template (str):
            Name of the NodeTemplate resource to delete.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    node_template: str = proto.Field(
        proto.STRING,
        number=323154455,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteNodesNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.DeleteNodes. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_group (str):
            Name of the NodeGroup resource whose nodes
            will be deleted.
        node_groups_delete_nodes_request_resource (google.cloud.compute_v1beta.types.NodeGroupsDeleteNodesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    node_groups_delete_nodes_request_resource: "NodeGroupsDeleteNodesRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=183298962,
            message="NodeGroupsDeleteNodesRequest",
        )
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.Delete.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to delete.
    """

    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class DeletePacketMirroringRequest(proto.Message):
    r"""A request message for PacketMirrorings.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        packet_mirroring (str):
            Name of the PacketMirroring resource to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    packet_mirroring: str = proto.Field(
        proto.STRING,
        number=22305996,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeletePerInstanceConfigsInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.DeletePerInstanceConfigs. See the method
    description for details.

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        instance_group_managers_delete_per_instance_configs_req_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersDeletePerInstanceConfigsReq):
            The body resource for this request
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone where the managed
            instance group is located. It should conform to
            RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_delete_per_instance_configs_req_resource: "InstanceGroupManagersDeletePerInstanceConfigsReq" = proto.Field(
        proto.MESSAGE,
        number=362427680,
        message="InstanceGroupManagersDeletePerInstanceConfigsReq",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeletePerInstanceConfigsRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.DeletePerInstanceConfigs. See the
    method description for details.

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request,
            should conform to RFC1035.
        region_instance_group_manager_delete_instance_config_req_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagerDeleteInstanceConfigReq):
            The body resource for this request
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_manager_delete_instance_config_req_resource: "RegionInstanceGroupManagerDeleteInstanceConfigReq" = proto.Field(
        proto.MESSAGE,
        number=740741,
        message="RegionInstanceGroupManagerDeleteInstanceConfigReq",
    )


class DeletePublicAdvertisedPrefixeRequest(proto.Message):
    r"""A request message for PublicAdvertisedPrefixes.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_advertised_prefix (str):
            Name of the PublicAdvertisedPrefix resource
            to delete.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_advertised_prefix: str = proto.Field(
        proto.STRING,
        number=101874590,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeletePublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            Name of the PublicDelegatedPrefix resource to
            delete.
        region (str):
            Name of the region of this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionAutoscalerRequest(proto.Message):
    r"""A request message for RegionAutoscalers.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler (str):
            Name of the autoscaler to delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            Name of the regional persistent disk to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionHealthCheckRequest(proto.Message):
    r"""A request message for RegionHealthChecks.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionHealthCheckServiceRequest(proto.Message):
    r"""A request message for RegionHealthCheckServices.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check_service (str):
            Name of the HealthCheckService to delete. The
            name must be 1-63 characters long, and comply
            with RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check_service: str = proto.Field(
        proto.STRING,
        number=408374747,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group to delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagerResizeRequests.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. Name
            should conform to RFC1035 or be a resource ID.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region scoping this request.
            Name should conform to RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resize_request (str):
            The name of the resize request to delete.
            Name should conform to RFC1035 or be a resource
            ID.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resize_request: str = proto.Field(
        proto.STRING,
        number=216941060,
    )


class DeleteRegionInstanceTemplateRequest(proto.Message):
    r"""A request message for RegionInstanceTemplates.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            The name of the instance template to delete.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionInstantSnapshotRequest(proto.Message):
    r"""A request message for RegionInstantSnapshots.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instant_snapshot (str):
            Name of the InstantSnapshot resource to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instant_snapshot: str = proto.Field(
        proto.STRING,
        number=391638626,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionMultiMigRequest(proto.Message):
    r"""A request message for RegionMultiMigs.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        multi_mig (str):
            Name of the multi-MIG to delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    multi_mig: str = proto.Field(
        proto.STRING,
        number=403990085,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for RegionNetworkEndpointGroups.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group to
            delete. It should comply with RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where the network
            endpoint group is located. It should comply with
            RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for RegionNetworkFirewallPolicies.Delete.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionNotificationEndpointRequest(proto.Message):
    r"""A request message for RegionNotificationEndpoints.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        notification_endpoint (str):
            Name of the NotificationEndpoint resource to
            delete.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    notification_endpoint: str = proto.Field(
        proto.STRING,
        number=376807017,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteRegionOperationRequest(proto.Message):
    r"""A request message for RegionOperations.Delete. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to delete, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class DeleteRegionOperationResponse(proto.Message):
    r"""A response message for RegionOperations.Delete. See the
    method description for details.

    """


class DeleteRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class DeleteRegionSnapshotRequest(proto.Message):
    r"""A request message for RegionSnapshots.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot (str):
            Name of the snapshot resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot: str = proto.Field(
        proto.STRING,
        number=284874180,
    )


class DeleteRegionSslCertificateRequest(proto.Message):
    r"""A request message for RegionSslCertificates.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_certificate (str):
            Name of the SslCertificate resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_certificate: str = proto.Field(
        proto.STRING,
        number=46443492,
    )


class DeleteRegionSslPolicyRequest(proto.Message):
    r"""A request message for RegionSslPolicies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy (str):
            Name of the SSL policy to delete. The name
            must be 1-63 characters long, and comply with
            RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
    )


class DeleteRegionTargetHttpProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpProxies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_http_proxy (str):
            Name of the TargetHttpProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_http_proxy: str = proto.Field(
        proto.STRING,
        number=206872421,
    )


class DeleteRegionTargetHttpsProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpsProxies.Delete. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class DeleteRegionTargetTcpProxyRequest(proto.Message):
    r"""A request message for RegionTargetTcpProxies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_tcp_proxy (str):
            Name of the TargetTcpProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_tcp_proxy: str = proto.Field(
        proto.STRING,
        number=503065442,
    )


class DeleteRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            begin_interface: MixerMutationRequestBuilder Request ID to
            support idempotency.

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )


class DeleteReservationRequest(proto.Message):
    r"""A request message for Reservations.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        reservation (str):
            Name of the reservation to delete.
        zone (str):
            Name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteResourcePolicyRequest(proto.Message):
    r"""A request message for ResourcePolicies.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource_policy (str):
            Name of the resource policy to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource_policy: str = proto.Field(
        proto.STRING,
        number=159240835,
    )


class DeleteRoutePolicyRouterRequest(proto.Message):
    r"""A request message for Routers.DeleteRoutePolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        policy (str):
            The Policy name for this request. Name must
            conform to RFC1035

            This field is a member of `oneof`_ ``_policy``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        router (str):
            Name of the Router resource where Route
            Policy is defined.
    """

    policy: str = proto.Field(
        proto.STRING,
        number=91071794,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class DeleteRouteRequest(proto.Message):
    r"""A request message for Routes.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        route (str):
            Name of the Route resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    route: str = proto.Field(
        proto.STRING,
        number=108704329,
    )


class DeleteRouterRequest(proto.Message):
    r"""A request message for Routers.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        router (str):
            Name of the Router resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class DeleteSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class DeleteServiceAttachmentRequest(proto.Message):
    r"""A request message for ServiceAttachments.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        service_attachment (str):
            Name of the ServiceAttachment resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    service_attachment: str = proto.Field(
        proto.STRING,
        number=338957549,
    )


class DeleteSignedUrlKeyBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.DeleteSignedUrlKey. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_bucket (str):
            Name of the BackendBucket resource to which
            the Signed URL Key should be added. The name
            should conform to RFC1035.
        key_name (str):
            The name of the Signed URL Key to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_bucket: str = proto.Field(
        proto.STRING,
        number=91714037,
    )
    key_name: str = proto.Field(
        proto.STRING,
        number=500938859,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteSignedUrlKeyBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.DeleteSignedUrlKey. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to which
            the Signed URL Key should be added. The name
            should conform to RFC1035.
        key_name (str):
            The name of the Signed URL Key to delete.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    key_name: str = proto.Field(
        proto.STRING,
        number=500938859,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeleteSnapshotRequest(proto.Message):
    r"""A request message for Snapshots.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot (str):
            Name of the Snapshot resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot: str = proto.Field(
        proto.STRING,
        number=284874180,
    )


class DeleteSslCertificateRequest(proto.Message):
    r"""A request message for SslCertificates.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_certificate (str):
            Name of the SslCertificate resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_certificate: str = proto.Field(
        proto.STRING,
        number=46443492,
    )


class DeleteSslPolicyRequest(proto.Message):
    r"""A request message for SslPolicies.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy (str):
            Name of the SSL policy to delete. The name
            must be 1-63 characters long, and comply with
            RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
    )


class DeleteStoragePoolRequest(proto.Message):
    r"""A request message for StoragePools.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        storage_pool (str):
            Name of the storage pool to delete.
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    storage_pool: str = proto.Field(
        proto.STRING,
        number=360473440,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteSubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        subnetwork (str):
            Name of the Subnetwork resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
    )


class DeleteTargetGrpcProxyRequest(proto.Message):
    r"""A request message for TargetGrpcProxies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_grpc_proxy (str):
            Name of the TargetGrpcProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_grpc_proxy: str = proto.Field(
        proto.STRING,
        number=5020283,
    )


class DeleteTargetHttpProxyRequest(proto.Message):
    r"""A request message for TargetHttpProxies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_http_proxy (str):
            Name of the TargetHttpProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_http_proxy: str = proto.Field(
        proto.STRING,
        number=206872421,
    )


class DeleteTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class DeleteTargetInstanceRequest(proto.Message):
    r"""A request message for TargetInstances.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_instance (str):
            Name of the TargetInstance resource to
            delete.
        zone (str):
            Name of the zone scoping this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_instance: str = proto.Field(
        proto.STRING,
        number=289769347,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_pool (str):
            Name of the TargetPool resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )


class DeleteTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_ssl_proxy (str):
            Name of the TargetSslProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_ssl_proxy: str = proto.Field(
        proto.STRING,
        number=338795853,
    )


class DeleteTargetTcpProxyRequest(proto.Message):
    r"""A request message for TargetTcpProxies.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_tcp_proxy (str):
            Name of the TargetTcpProxy resource to
            delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_tcp_proxy: str = proto.Field(
        proto.STRING,
        number=503065442,
    )


class DeleteTargetVpnGatewayRequest(proto.Message):
    r"""A request message for TargetVpnGateways.Delete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_vpn_gateway (str):
            Name of the target VPN gateway to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_vpn_gateway: str = proto.Field(
        proto.STRING,
        number=532512843,
    )


class DeleteUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )


class DeleteVpnGatewayRequest(proto.Message):
    r"""A request message for VpnGateways.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        vpn_gateway (str):
            Name of the VPN gateway to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    vpn_gateway: str = proto.Field(
        proto.STRING,
        number=406684153,
    )


class DeleteVpnTunnelRequest(proto.Message):
    r"""A request message for VpnTunnels.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        vpn_tunnel (str):
            Name of the VpnTunnel resource to delete.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    vpn_tunnel: str = proto.Field(
        proto.STRING,
        number=143821331,
    )


class DeleteWireGroupRequest(proto.Message):
    r"""A request message for WireGroups.Delete. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cross_site_network (str):

        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
        wire_group (str):
            Name of the wire group resource to delete.
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    wire_group: str = proto.Field(
        proto.STRING,
        number=122540613,
    )


class DeleteZoneOperationRequest(proto.Message):
    r"""A request message for ZoneOperations.Delete. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to delete, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DeleteZoneOperationResponse(proto.Message):
    r"""A response message for ZoneOperations.Delete. See the method
    description for details.

    """


class Denied(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        I_p_protocol (str):
            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.

            This field is a member of `oneof`_ ``_I_p_protocol``.
        ports (MutableSequence[str]):
            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"].
    """

    I_p_protocol: str = proto.Field(
        proto.STRING,
        number=488094525,
        optional=True,
    )
    ports: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=106854418,
    )


class DeprecateImageRequest(proto.Message):
    r"""A request message for Images.Deprecate. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        deprecation_status_resource (google.cloud.compute_v1beta.types.DeprecationStatus):
            The body resource for this request
        image (str):
            Image name.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    deprecation_status_resource: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=333006064,
        message="DeprecationStatus",
    )
    image: str = proto.Field(
        proto.STRING,
        number=100313435,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DeprecationStatus(proto.Message):
    r"""Deprecation status for a public resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        deleted (str):
            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.

            This field is a member of `oneof`_ ``_deleted``.
        deprecated (str):
            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.

            This field is a member of `oneof`_ ``_deprecated``.
        obsolete (str):
            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.

            This field is a member of `oneof`_ ``_obsolete``.
        replacement (str):
            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.

            This field is a member of `oneof`_ ``_replacement``.
        state (str):
            The deprecation state of this resource. This
            can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED.
            Operations which communicate the end of life
            date for an image, can use ACTIVE. Operations
            which create a new resource using a DEPRECATED
            resource will return successfully, but with a
            warning indicating the deprecated resource and
            recommending its replacement. Operations which
            use OBSOLETE or DELETED resources will be
            rejected and result in an error. Check the State
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
        state_override (google.cloud.compute_v1beta.types.RolloutPolicy):
            The rollout policy for this deprecation. This
            policy is only enforced by image family views.
            The rollout policy restricts the zones where the
            associated resource is considered in a
            deprecated state. When the rollout policy does
            not include the user specified zone, or if the
            zone is rolled out, the associated resource is
            considered in a deprecated state. The rollout
            policy for this deprecation is read-only, except
            for allowlisted users. This field might not be
            configured. To view the latest non-deprecated
            image in a specific zone, use the
            imageFamilyViews.get method.

            This field is a member of `oneof`_ ``_state_override``.
    """

    class State(proto.Enum):
        r"""The deprecation state of this resource. This can be ACTIVE,
        DEPRECATED, OBSOLETE, or DELETED. Operations which communicate
        the end of life date for an image, can use ACTIVE. Operations
        which create a new resource using a DEPRECATED resource will
        return successfully, but with a warning indicating the
        deprecated resource and recommending its replacement. Operations
        which use OBSOLETE or DELETED resources will be rejected and
        result in an error.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                No description available.
            DELETED (120962041):
                No description available.
            DEPRECATED (463360435):
                No description available.
            OBSOLETE (66532761):
                No description available.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        DELETED = 120962041
        DEPRECATED = 463360435
        OBSOLETE = 66532761

    deleted: str = proto.Field(
        proto.STRING,
        number=476721177,
        optional=True,
    )
    deprecated: str = proto.Field(
        proto.STRING,
        number=515138995,
        optional=True,
    )
    obsolete: str = proto.Field(
        proto.STRING,
        number=357647769,
        optional=True,
    )
    replacement: str = proto.Field(
        proto.STRING,
        number=430919186,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    state_override: "RolloutPolicy" = proto.Field(
        proto.MESSAGE,
        number=300358586,
        optional=True,
        message="RolloutPolicy",
    )


class DetachDiskInstanceRequest(proto.Message):
    r"""A request message for Instances.DetachDisk. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        device_name (str):
            The device name of the disk to detach. Make a
            get() request on the instance to view currently
            attached disks and device names.
        instance (str):
            Instance name for this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    device_name: str = proto.Field(
        proto.STRING,
        number=67541716,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DetachNetworkEndpointsGlobalNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for
    GlobalNetworkEndpointGroups.DetachNetworkEndpoints. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        global_network_endpoint_groups_detach_endpoints_request_resource (google.cloud.compute_v1beta.types.GlobalNetworkEndpointGroupsDetachEndpointsRequest):
            The body resource for this request
        network_endpoint_group (str):
            The name of the network endpoint group where
            you are removing network endpoints. It should
            comply with RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    global_network_endpoint_groups_detach_endpoints_request_resource: "GlobalNetworkEndpointGroupsDetachEndpointsRequest" = proto.Field(
        proto.MESSAGE,
        number=8898269,
        message="GlobalNetworkEndpointGroupsDetachEndpointsRequest",
    )
    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DetachNetworkEndpointsNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for
    NetworkEndpointGroups.DetachNetworkEndpoints. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group where
            you are removing network endpoints. It should
            comply with RFC1035.
        network_endpoint_groups_detach_endpoints_request_resource (google.cloud.compute_v1beta.types.NetworkEndpointGroupsDetachEndpointsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the network
            endpoint group is located. It should comply with
            RFC1035.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    network_endpoint_groups_detach_endpoints_request_resource: "NetworkEndpointGroupsDetachEndpointsRequest" = proto.Field(
        proto.MESSAGE,
        number=515608697,
        message="NetworkEndpointGroupsDetachEndpointsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class DetachNetworkEndpointsRegionNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for
    RegionNetworkEndpointGroups.DetachNetworkEndpoints. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group you
            are detaching network endpoints from. It should
            comply with RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where the network
            endpoint group is located. It should comply with
            RFC1035.
        region_network_endpoint_groups_detach_endpoints_request_resource (google.cloud.compute_v1beta.types.RegionNetworkEndpointGroupsDetachEndpointsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_network_endpoint_groups_detach_endpoints_request_resource: "RegionNetworkEndpointGroupsDetachEndpointsRequest" = proto.Field(
        proto.MESSAGE,
        number=313193198,
        message="RegionNetworkEndpointGroupsDetachEndpointsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DisableXpnHostProjectRequest(proto.Message):
    r"""A request message for Projects.DisableXpnHost. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class DisableXpnResourceProjectRequest(proto.Message):
    r"""A request message for Projects.DisableXpnResource. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        projects_disable_xpn_resource_request_resource (google.cloud.compute_v1beta.types.ProjectsDisableXpnResourceRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    projects_disable_xpn_resource_request_resource: "ProjectsDisableXpnResourceRequest" = proto.Field(
        proto.MESSAGE,
        number=209136170,
        message="ProjectsDisableXpnResourceRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class Disk(proto.Message):
    r"""Represents a Persistent Disk resource. Google Compute Engine has two
    Disk resources: \*
    `Zonal </compute/docs/reference/rest/beta/disks>`__ \*
    `Regional </compute/docs/reference/rest/beta/regionDisks>`__
    Persistent disks are required for running your VM instances. Create
    both boot and non-boot (data) persistent disks. For more
    information, read Persistent Disks. For more storage options, read
    Storage options. The disks resource represents a zonal persistent
    disk. For more information, read Zonal persistent disks. The
    regionDisks resource represents a regional persistent disk. For more
    information, read Regional resources.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_mode (str):
            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. Check the AccessMode
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_access_mode``.
        architecture (str):
            The architecture of the disk. Valid values are ARM64 or
            X86_64. Check the Architecture enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_architecture``.
        async_primary_disk (google.cloud.compute_v1beta.types.DiskAsyncReplication):
            Disk asynchronously replicated into this
            disk.

            This field is a member of `oneof`_ ``_async_primary_disk``.
        async_secondary_disks (MutableMapping[str, google.cloud.compute_v1beta.types.DiskAsyncReplicationList]):
            [Output Only] A list of disks this disk is asynchronously
            replicated to.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        disk_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Encrypts the disk using a customer-supplied encryption key
            or a customer-managed encryption key. Encryption keys do not
            protect access to metadata of the disk. After you encrypt a
            disk with a customer-supplied key, you must provide the same
            key if you use the disk later. For example, to create a disk
            snapshot, to create a disk image, to create a machine image,
            or to attach the disk to a virtual machine. After you
            encrypt a disk with a customer-managed key, the
            diskEncryptionKey.kmsKeyName is set to a key *version* name
            once the disk is created. The disk is encrypted with this
            version of the key. In the response,
            diskEncryptionKey.kmsKeyName appears in the following
            format: "diskEncryptionKey.kmsKeyName":
            "projects/kms_project_id/locations/region/keyRings/
            key_region/cryptoKeys/key /cryptoKeysVersions/version If you
            do not provide an encryption key when creating the disk,
            then the disk is encrypted using an automatically generated
            key and you don't need to provide a key to use the disk
            later.

            This field is a member of `oneof`_ ``_disk_encryption_key``.
        enable_confidential_compute (bool):
            Whether this disk is using confidential
            compute mode.

            This field is a member of `oneof`_ ``_enable_confidential_compute``.
        erase_windows_vss_signature (bool):
            Specifies whether the disk restored from a
            source snapshot should erase Windows specific
            VSS signature.

            This field is a member of `oneof`_ ``_erase_windows_vss_signature``.
        guest_os_features (MutableSequence[google.cloud.compute_v1beta.types.GuestOsFeature]):
            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.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        interface (str):
            [Deprecated] Specifies the disk interface to use for
            attaching this disk, which is either SCSI or NVME. The
            default is SCSI. Check the Interface enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_interface``.
        kind (str):
            [Output Only] Type of the resource. Always compute#disk for
            disks.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this disk, which is essentially a hash of the
            labels set used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash in order to update
            or change labels, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve a disk.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels to apply to this disk. These can be
            later modified by the setLabels method.
        last_attach_timestamp (str):
            [Output Only] Last attach timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_last_attach_timestamp``.
        last_detach_timestamp (str):
            [Output Only] Last detach timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_last_detach_timestamp``.
        license_codes (MutableSequence[int]):
            Integer license codes indicating which
            licenses are attached to this disk.
        licenses (MutableSequence[str]):
            A list of publicly visible licenses. Reserved
            for Google's use.
        location_hint (str):
            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.

            This field is a member of `oneof`_ ``_location_hint``.
        locked (bool):
            [Output Only] The field indicates if the disk is created
            from a locked source image. Attachment of a disk created
            from a locked source image will cause the following
            operations to become irreversibly prohibited: - R/W or R/O
            disk attachment to any other instance - Disk detachment. And
            the disk can only be deleted when the instance is deleted -
            Creation of images or snapshots - Disk cloning Furthermore,
            the instance with at least one disk with locked flag set to
            true will be prohibited from performing the operations
            below: - Further attachment of secondary disks. - Detachment
            of any disks - Create machine images - Create instance
            template - Delete the instance with --keep-disk parameter
            set to true for locked disks - Attach a locked disk with
            --auto-delete parameter set to false

            This field is a member of `oneof`_ ``_locked``.
        multi_writer (bool):
            Indicates whether or not the disk can be
            read/write attached to more than one instance.

            This field is a member of `oneof`_ ``_multi_writer``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        options (str):
            Internal use only.

            This field is a member of `oneof`_ ``_options``.
        params (google.cloud.compute_v1beta.types.DiskParams):
            Input only. [Input Only] Additional params passed with the
            request, but not persisted as part of resource payload.

            This field is a member of `oneof`_ ``_params``.
        physical_block_size_bytes (int):
            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.

            This field is a member of `oneof`_ ``_physical_block_size_bytes``.
        provisioned_iops (int):
            Indicates how many IOPS to provision for the
            disk. This sets the number of I/O operations per
            second that the disk can handle. Values must be
            between 10,000 and 120,000. For more details,
            see the Extreme persistent disk documentation.

            This field is a member of `oneof`_ ``_provisioned_iops``.
        provisioned_throughput (int):
            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.

            This field is a member of `oneof`_ ``_provisioned_throughput``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        replica_zones (MutableSequence[str]):
            URLs of the zones where the disk should be
            replicated to. Only applicable for regional
            resources.
        resource_policies (MutableSequence[str]):
            Resource policies applied to this disk for
            automatic snapshot creations.
        resource_status (google.cloud.compute_v1beta.types.DiskResourceStatus):
            [Output Only] Status information for the disk resource.

            This field is a member of `oneof`_ ``_resource_status``.
        satisfies_pzi (bool):
            Output only. Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzi``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] Server-defined fully-qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        size_gb (int):
            Size, in GB, of the persistent disk. You can
            specify this field when creating a persistent
            disk using the sourceImage, sourceSnapshot, or
            sourceDisk parameter, or specify it alone to
            create an empty persistent disk. If you specify
            this field along with a source, the value of
            sizeGb must not be less than the size of the
            source. Acceptable values are greater than 0.

            This field is a member of `oneof`_ ``_size_gb``.
        source_consistency_group_policy (str):
            [Output Only] URL of the DiskConsistencyGroupPolicy for a
            secondary disk that was created using a consistency group.

            This field is a member of `oneof`_ ``_source_consistency_group_policy``.
        source_consistency_group_policy_id (str):
            [Output Only] ID of the DiskConsistencyGroupPolicy for a
            secondary disk that was created using a consistency group.

            This field is a member of `oneof`_ ``_source_consistency_group_policy_id``.
        source_disk (str):
            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

            This field is a member of `oneof`_ ``_source_disk``.
        source_disk_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_disk_id``.
        source_image (str):
            The source image used to create this disk. If
            the source image is deleted, this field will not
            be set. To create a disk with one of the public
            operating system images, specify the image by
            its family name. For example, specify
            family/debian-9 to use the latest Debian 9
            image:
            projects/debian-cloud/global/images/family/debian-9
            Alternatively, use a specific version of a
            public operating system image:
            projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
            To create a disk with a custom image that you
            created, specify the image name in the following
            format: global/images/my-custom-image You can
            also specify a custom image by its image family,
            which returns the latest version of the image in
            that family. Replace the image name with
            family/family-name:
            global/images/family/my-image-family

            This field is a member of `oneof`_ ``_source_image``.
        source_image_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source image. Required if the source image is
            protected by a customer-supplied encryption key.

            This field is a member of `oneof`_ ``_source_image_encryption_key``.
        source_image_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_image_id``.
        source_instant_snapshot (str):
            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

            This field is a member of `oneof`_ ``_source_instant_snapshot``.
        source_instant_snapshot_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_instant_snapshot_id``.
        source_snapshot (str):
            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

            This field is a member of `oneof`_ ``_source_snapshot``.
        source_snapshot_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source snapshot. Required if the source snapshot
            is protected by a customer-supplied encryption
            key.

            This field is a member of `oneof`_ ``_source_snapshot_encryption_key``.
        source_snapshot_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_snapshot_id``.
        source_storage_object (str):
            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.

            This field is a member of `oneof`_ ``_source_storage_object``.
        status (str):
            [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. Check the
            Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        storage_pool (str):
            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

            This field is a member of `oneof`_ ``_storage_pool``.
        storage_type (str):
            [Deprecated] Storage type of the persistent disk. Check the
            StorageType enum for the list of possible values.

            This field is a member of `oneof`_ ``_storage_type``.
        type_ (str):
            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.

            This field is a member of `oneof`_ ``_type``.
        user_licenses (MutableSequence[str]):
            A list of publicly visible user-licenses.
            Unlike regular licenses, user provided licenses
            can be modified after the disk is created. This
            includes a list of URLs to the license resource.
            For example, to provide a debian license:
            https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-9-stretch
        users (MutableSequence[str]):
            [Output Only] Links to the users of the disk (attached
            instances) in form:
            projects/project/zones/zone/instances/instance
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    class AccessMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_ACCESS_MODE (0):
                A value indicating that the enum field is not
                set.
            READ_ONLY_MANY (63460265):
                The AccessMode means the disk can be attached
                to multiple instances in RO mode.
            READ_WRITE_MANY (488743208):
                The AccessMode means the disk can be attached
                to multiple instances in RW mode.
            READ_WRITE_SINGLE (99323089):
                The default AccessMode, means the disk can be
                attached to single instance in RW mode.
        """
        UNDEFINED_ACCESS_MODE = 0
        READ_ONLY_MANY = 63460265
        READ_WRITE_MANY = 488743208
        READ_WRITE_SINGLE = 99323089

    class Architecture(proto.Enum):
        r"""The architecture of the disk. Valid values are ARM64 or X86_64.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    class Interface(proto.Enum):
        r"""[Deprecated] Specifies the disk interface to use for attaching this
        disk, which is either SCSI or NVME. The default is SCSI.

        Values:
            UNDEFINED_INTERFACE (0):
                A value indicating that the enum field is not
                set.
            NVME (2408800):
                No description available.
            SCSI (2539686):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_INTERFACE = 0
        NVME = 2408800
        SCSI = 2539686
        UNSPECIFIED = 526786327

    class Status(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Disk is provisioning
            DELETING (528602024):
                Disk is deleting.
            FAILED (455706685):
                Disk creation failed.
            READY (77848963):
                Disk is ready for use.
            RESTORING (404263851):
                Source data is being copied into the disk.
            UNAVAILABLE (413756464):
                Disk is currently unavailable and cannot be
                accessed, attached or detached.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        FAILED = 455706685
        READY = 77848963
        RESTORING = 404263851
        UNAVAILABLE = 413756464

    class StorageType(proto.Enum):
        r"""[Deprecated] Storage type of the persistent disk.

        Values:
            UNDEFINED_STORAGE_TYPE (0):
                A value indicating that the enum field is not
                set.
            HDD (71368):
                No description available.
            SSD (82404):
                No description available.
        """
        UNDEFINED_STORAGE_TYPE = 0
        HDD = 71368
        SSD = 82404

    access_mode: str = proto.Field(
        proto.STRING,
        number=41155486,
        optional=True,
    )
    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    async_primary_disk: "DiskAsyncReplication" = proto.Field(
        proto.MESSAGE,
        number=180517533,
        optional=True,
        message="DiskAsyncReplication",
    )
    async_secondary_disks: MutableMapping[
        str, "DiskAsyncReplicationList"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=322925608,
        message="DiskAsyncReplicationList",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disk_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=271660677,
        optional=True,
        message="CustomerEncryptionKey",
    )
    enable_confidential_compute: bool = proto.Field(
        proto.BOOL,
        number=102135228,
        optional=True,
    )
    erase_windows_vss_signature: bool = proto.Field(
        proto.BOOL,
        number=52637562,
        optional=True,
    )
    guest_os_features: MutableSequence["GuestOsFeature"] = proto.RepeatedField(
        proto.MESSAGE,
        number=79294545,
        message="GuestOsFeature",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    interface: str = proto.Field(
        proto.STRING,
        number=502623545,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    last_attach_timestamp: str = proto.Field(
        proto.STRING,
        number=42159653,
        optional=True,
    )
    last_detach_timestamp: str = proto.Field(
        proto.STRING,
        number=56471027,
        optional=True,
    )
    license_codes: MutableSequence[int] = proto.RepeatedField(
        proto.INT64,
        number=45482664,
    )
    licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337642578,
    )
    location_hint: str = proto.Field(
        proto.STRING,
        number=350519505,
        optional=True,
    )
    locked: bool = proto.Field(
        proto.BOOL,
        number=513159946,
        optional=True,
    )
    multi_writer: bool = proto.Field(
        proto.BOOL,
        number=528165433,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    options: str = proto.Field(
        proto.STRING,
        number=361137822,
        optional=True,
    )
    params: "DiskParams" = proto.Field(
        proto.MESSAGE,
        number=78313862,
        optional=True,
        message="DiskParams",
    )
    physical_block_size_bytes: int = proto.Field(
        proto.INT64,
        number=420007943,
        optional=True,
    )
    provisioned_iops: int = proto.Field(
        proto.INT64,
        number=186769108,
        optional=True,
    )
    provisioned_throughput: int = proto.Field(
        proto.INT64,
        number=526524181,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    replica_zones: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=48438272,
    )
    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )
    resource_status: "DiskResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=249429315,
        optional=True,
        message="DiskResourceStatus",
    )
    satisfies_pzi: bool = proto.Field(
        proto.BOOL,
        number=480964257,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    size_gb: int = proto.Field(
        proto.INT64,
        number=494929369,
        optional=True,
    )
    source_consistency_group_policy: str = proto.Field(
        proto.STRING,
        number=19616093,
        optional=True,
    )
    source_consistency_group_policy_id: str = proto.Field(
        proto.STRING,
        number=267568957,
        optional=True,
    )
    source_disk: str = proto.Field(
        proto.STRING,
        number=451753793,
        optional=True,
    )
    source_disk_id: str = proto.Field(
        proto.STRING,
        number=454190809,
        optional=True,
    )
    source_image: str = proto.Field(
        proto.STRING,
        number=50443319,
        optional=True,
    )
    source_image_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=381503659,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_image_id: str = proto.Field(
        proto.STRING,
        number=55328291,
        optional=True,
    )
    source_instant_snapshot: str = proto.Field(
        proto.STRING,
        number=219202054,
        optional=True,
    )
    source_instant_snapshot_id: str = proto.Field(
        proto.STRING,
        number=287582708,
        optional=True,
    )
    source_snapshot: str = proto.Field(
        proto.STRING,
        number=126061928,
        optional=True,
    )
    source_snapshot_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=303679322,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_snapshot_id: str = proto.Field(
        proto.STRING,
        number=98962258,
        optional=True,
    )
    source_storage_object: str = proto.Field(
        proto.STRING,
        number=233052711,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    storage_pool: str = proto.Field(
        proto.STRING,
        number=360473440,
        optional=True,
    )
    storage_type: str = proto.Field(
        proto.STRING,
        number=360602238,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    user_licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=388193862,
    )
    users: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=111578632,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class DiskAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.DisksScopedList]):
            A list of DisksScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#diskAggregatedList for aggregated lists of
            persistent disks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "DisksScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="DisksScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class DiskAsyncReplication(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        consistency_group_policy (str):
            [Output Only] URL of the DiskConsistencyGroupPolicy if
            replication was started on the disk as a member of a group.

            This field is a member of `oneof`_ ``_consistency_group_policy``.
        consistency_group_policy_id (str):
            [Output Only] ID of the DiskConsistencyGroupPolicy if
            replication was started on the disk as a member of a group.

            This field is a member of `oneof`_ ``_consistency_group_policy_id``.
        disk (str):
            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

            This field is a member of `oneof`_ ``_disk``.
        disk_id (str):
            [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.

            This field is a member of `oneof`_ ``_disk_id``.
    """

    consistency_group_policy: str = proto.Field(
        proto.STRING,
        number=1991097,
        optional=True,
    )
    consistency_group_policy_id: str = proto.Field(
        proto.STRING,
        number=261065057,
        optional=True,
    )
    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
        optional=True,
    )
    disk_id: str = proto.Field(
        proto.STRING,
        number=60990205,
        optional=True,
    )


class DiskAsyncReplicationList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        async_replication_disk (google.cloud.compute_v1beta.types.DiskAsyncReplication):

            This field is a member of `oneof`_ ``_async_replication_disk``.
    """

    async_replication_disk: "DiskAsyncReplication" = proto.Field(
        proto.MESSAGE,
        number=231794067,
        optional=True,
        message="DiskAsyncReplication",
    )


class DiskInstantiationConfig(proto.Message):
    r"""A specification of the desired way to instantiate a disk in
    the instance template when its created from a source instance.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_delete (bool):
            Specifies whether the disk will be
            auto-deleted when the instance is deleted (but
            not when the disk is detached from the
            instance).

            This field is a member of `oneof`_ ``_auto_delete``.
        custom_image (str):
            The custom source image to be used to restore
            this disk when instantiating this instance
            template.

            This field is a member of `oneof`_ ``_custom_image``.
        device_name (str):
            Specifies the device name of the disk to
            which the configurations apply to.

            This field is a member of `oneof`_ ``_device_name``.
        instantiate_from (str):
            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. Check the InstantiateFrom enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_instantiate_from``.
    """

    class InstantiateFrom(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_INSTANTIATE_FROM (0):
                A value indicating that the enum field is not
                set.
            ATTACH_READ_ONLY (513775419):
                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 (63281460):
                Create a blank disk. The disk will be created
                unformatted. Applicable to: additional
                read-write disks, local SSDs.
            CUSTOM_IMAGE (196311789):
                Use the custom image specified in the custom_image field.
                Applicable to: boot disk, additional read-write disks.
            DEFAULT (115302945):
                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 (104218952):
                Do not include the disk in the instance
                template. Applicable to: additional read-write
                disks, local SSDs, read-only disks.
            SOURCE_IMAGE (62631959):
                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 (76850316):
                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.
        """
        UNDEFINED_INSTANTIATE_FROM = 0
        ATTACH_READ_ONLY = 513775419
        BLANK = 63281460
        CUSTOM_IMAGE = 196311789
        DEFAULT = 115302945
        DO_NOT_INCLUDE = 104218952
        SOURCE_IMAGE = 62631959
        SOURCE_IMAGE_FAMILY = 76850316

    auto_delete: bool = proto.Field(
        proto.BOOL,
        number=464761403,
        optional=True,
    )
    custom_image: str = proto.Field(
        proto.STRING,
        number=184123149,
        optional=True,
    )
    device_name: str = proto.Field(
        proto.STRING,
        number=67541716,
        optional=True,
    )
    instantiate_from: str = proto.Field(
        proto.STRING,
        number=393383903,
        optional=True,
    )


class DiskList(proto.Message):
    r"""A list of Disk resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Disk]):
            A list of Disk resources.
        kind (str):
            [Output Only] Type of resource. Always compute#diskList for
            lists of disks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Disk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Disk",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class DiskMoveRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        destination_zone (str):
            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

            This field is a member of `oneof`_ ``_destination_zone``.
        target_disk (str):
            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

            This field is a member of `oneof`_ ``_target_disk``.
    """

    destination_zone: str = proto.Field(
        proto.STRING,
        number=131854653,
        optional=True,
    )
    target_disk: str = proto.Field(
        proto.STRING,
        number=62433163,
        optional=True,
    )


class DiskParams(proto.Message):
    r"""Additional disk params.

    Attributes:
        resource_manager_tags (MutableMapping[str, str]):
            Resource manager tags to be bound to the disk. Tag keys and
            values have the same definition as resource manager tags.
            Keys must be in the format ``tagKeys/{tag_key_id}``, and
            values are in the format ``tagValues/456``. The field is
            ignored (both PUT & PATCH) when empty.
    """

    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )


class DiskResourceStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        async_primary_disk (google.cloud.compute_v1beta.types.DiskResourceStatusAsyncReplicationStatus):

            This field is a member of `oneof`_ ``_async_primary_disk``.
        async_secondary_disks (MutableMapping[str, google.cloud.compute_v1beta.types.DiskResourceStatusAsyncReplicationStatus]):
            Key: disk, value: AsyncReplicationStatus
            message
    """

    async_primary_disk: "DiskResourceStatusAsyncReplicationStatus" = proto.Field(
        proto.MESSAGE,
        number=180517533,
        optional=True,
        message="DiskResourceStatusAsyncReplicationStatus",
    )
    async_secondary_disks: MutableMapping[
        str, "DiskResourceStatusAsyncReplicationStatus"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=322925608,
        message="DiskResourceStatusAsyncReplicationStatus",
    )


class DiskResourceStatusAsyncReplicationStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        state (str):
            Check the State enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_state``.
    """

    class State(proto.Enum):
        r"""

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                Replication is active.
            CREATED (135924424):
                Secondary disk is created and is waiting for
                replication to start.
            STARTING (488820800):
                Replication is starting.
            STATE_UNSPECIFIED (470755401):
                No description available.
            STOPPED (444276141):
                Replication is stopped.
            STOPPING (350791796):
                Replication is stopping.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        CREATED = 135924424
        STARTING = 488820800
        STATE_UNSPECIFIED = 470755401
        STOPPED = 444276141
        STOPPING = 350791796

    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )


class DiskSettings(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_location (google.cloud.compute_v1beta.types.DiskSettingsAccessLocation):
            Policy of which locations are allowed to
            create regional snapshots.

            This field is a member of `oneof`_ ``_access_location``.
    """

    access_location: "DiskSettingsAccessLocation" = proto.Field(
        proto.MESSAGE,
        number=18410544,
        optional=True,
        message="DiskSettingsAccessLocation",
    )


class DiskSettingsAccessLocation(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        locations (MutableMapping[str, google.cloud.compute_v1beta.types.DiskSettingsAccessLocationAccessLocationPreference]):

        policy (str):
            Check the Policy enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_policy``.
    """

    class Policy(proto.Enum):
        r"""

        Values:
            UNDEFINED_POLICY (0):
                A value indicating that the enum field is not
                set.
            ALL_REGIONS (273143585):
                No description available.
            POLICY_UNSPECIFIED (197974922):
                No description available.
            SPECIFIC_REGIONS (454128082):
                No description available.
        """
        UNDEFINED_POLICY = 0
        ALL_REGIONS = 273143585
        POLICY_UNSPECIFIED = 197974922
        SPECIFIC_REGIONS = 454128082

    locations: MutableMapping[
        str, "DiskSettingsAccessLocationAccessLocationPreference"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=413423454,
        message="DiskSettingsAccessLocationAccessLocationPreference",
    )
    policy: str = proto.Field(
        proto.STRING,
        number=91071794,
        optional=True,
    )


class DiskSettingsAccessLocationAccessLocationPreference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        region (str):

            This field is a member of `oneof`_ ``_region``.
    """

    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )


class DiskType(proto.Message):
    r"""Represents a Disk Type resource. Google Compute Engine has two Disk
    Type resources: \*
    `Regional </compute/docs/reference/rest/beta/regionDiskTypes>`__ \*
    `Zonal </compute/docs/reference/rest/beta/diskTypes>`__ You can
    choose from a variety of disk types based on your needs. For more
    information, read Storage options. The diskTypes resource represents
    disk types for a zonal persistent disk. For more information, read
    Zonal persistent disks. The regionDiskTypes resource represents disk
    types for a regional persistent disk. For more information, read
    Regional persistent disks.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        default_disk_size_gb (int):
            [Output Only] Server-defined default disk size in GB.

            This field is a member of `oneof`_ ``_default_disk_size_gb``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            [Output Only] The deprecation status associated with this
            disk type.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            [Output Only] An optional description of this resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always compute#diskType
            for disk types.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        valid_disk_size (str):
            [Output Only] An optional textual description of the valid
            disk size, such as "10GB-10TB".

            This field is a member of `oneof`_ ``_valid_disk_size``.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    default_disk_size_gb: int = proto.Field(
        proto.INT64,
        number=270619253,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    valid_disk_size: str = proto.Field(
        proto.STRING,
        number=493962464,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class DiskTypeAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.DiskTypesScopedList]):
            A list of DiskTypesScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#diskTypeAggregatedList.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "DiskTypesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="DiskTypesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class DiskTypeList(proto.Message):
    r"""Contains a list of disk types.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.DiskType]):
            A list of DiskType resources.
        kind (str):
            [Output Only] Type of resource. Always compute#diskTypeList
            for disk types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["DiskType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="DiskType",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class DiskTypesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_types (MutableSequence[google.cloud.compute_v1beta.types.DiskType]):
            [Output Only] A list of disk types contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of disk types when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    disk_types: MutableSequence["DiskType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=198926167,
        message="DiskType",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class DisksAddResourcePoliciesRequest(proto.Message):
    r"""

    Attributes:
        resource_policies (MutableSequence[str]):
            Full or relative path to the resource policy
            to be added to this disk. You can only specify
            one resource policy.
    """

    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )


class DisksRemoveResourcePoliciesRequest(proto.Message):
    r"""

    Attributes:
        resource_policies (MutableSequence[str]):
            Resource policies to be removed from this
            disk.
    """

    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )


class DisksResizeRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        size_gb (int):
            The new size of the persistent disk, which is
            specified in GB.

            This field is a member of `oneof`_ ``_size_gb``.
    """

    size_gb: int = proto.Field(
        proto.INT64,
        number=494929369,
        optional=True,
    )


class DisksScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disks (MutableSequence[google.cloud.compute_v1beta.types.Disk]):
            [Output Only] A list of disks contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of disks when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    disks: MutableSequence["Disk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="Disk",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class DisksStartAsyncReplicationRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        async_secondary_disk (str):
            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

            This field is a member of `oneof`_ ``_async_secondary_disk``.
    """

    async_secondary_disk: str = proto.Field(
        proto.STRING,
        number=131645867,
        optional=True,
    )


class DisksStopGroupAsyncReplicationResource(proto.Message):
    r"""A transient resource used in
    compute.disks.stopGroupAsyncReplication and
    compute.regionDisks.stopGroupAsyncReplication. It is only used
    to process requests and is not persisted.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        resource_policy (str):
            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

            This field is a member of `oneof`_ ``_resource_policy``.
    """

    resource_policy: str = proto.Field(
        proto.STRING,
        number=159240835,
        optional=True,
    )


class DisplayDevice(proto.Message):
    r"""A set of Display Device options

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable_display (bool):
            Defines whether the instance has Display
            enabled.

            This field is a member of `oneof`_ ``_enable_display``.
    """

    enable_display: bool = proto.Field(
        proto.BOOL,
        number=14266886,
        optional=True,
    )


class DistributionPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_shape (str):
            The distribution shape to which the group
            converges either proactively or on resize events
            (depending on the value set in
            updatePolicy.instanceRedistributionType). Check
            the TargetShape enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_target_shape``.
        zones (MutableSequence[google.cloud.compute_v1beta.types.DistributionPolicyZoneConfiguration]):
            Zones where the regional managed instance
            group will create and manage its instances.
    """

    class TargetShape(proto.Enum):
        r"""The distribution shape to which the group converges either
        proactively or on resize events (depending on the value set in
        updatePolicy.instanceRedistributionType).

        Values:
            UNDEFINED_TARGET_SHAPE (0):
                A value indicating that the enum field is not
                set.
            ANY (64972):
                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 (61100880):
                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 (468409608):
                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 (2140442):
                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.
        """
        UNDEFINED_TARGET_SHAPE = 0
        ANY = 64972
        ANY_SINGLE_ZONE = 61100880
        BALANCED = 468409608
        EVEN = 2140442

    target_shape: str = proto.Field(
        proto.STRING,
        number=338621299,
        optional=True,
    )
    zones: MutableSequence["DistributionPolicyZoneConfiguration"] = proto.RepeatedField(
        proto.MESSAGE,
        number=116085319,
        message="DistributionPolicyZoneConfiguration",
    )


class DistributionPolicyZoneConfiguration(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        zone (str):
            The URL of the zone. The zone must exist in
            the region where the managed instance group is
            located.

            This field is a member of `oneof`_ ``_zone``.
    """

    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class Duration(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        nanos (int):
            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.

            This field is a member of `oneof`_ ``_nanos``.
        seconds (int):
            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

            This field is a member of `oneof`_ ``_seconds``.
    """

    nanos: int = proto.Field(
        proto.INT32,
        number=104586303,
        optional=True,
    )
    seconds: int = proto.Field(
        proto.INT64,
        number=359484031,
        optional=True,
    )


class EnableXpnHostProjectRequest(proto.Message):
    r"""A request message for Projects.EnableXpnHost. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class EnableXpnResourceProjectRequest(proto.Message):
    r"""A request message for Projects.EnableXpnResource. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        projects_enable_xpn_resource_request_resource (google.cloud.compute_v1beta.types.ProjectsEnableXpnResourceRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    projects_enable_xpn_resource_request_resource: "ProjectsEnableXpnResourceRequest" = proto.Field(
        proto.MESSAGE,
        number=421980207,
        message="ProjectsEnableXpnResourceRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class Error(proto.Message):
    r"""Errors that prevented the ResizeRequest to be fulfilled.

    Attributes:
        errors (MutableSequence[google.cloud.compute_v1beta.types.Errors]):
            [Output Only] The array of errors encountered while
            processing this operation.
    """

    errors: MutableSequence["Errors"] = proto.RepeatedField(
        proto.MESSAGE,
        number=315977579,
        message="Errors",
    )


class ErrorDetails(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        error_info (google.cloud.compute_v1beta.types.ErrorInfo):

            This field is a member of `oneof`_ ``_error_info``.
        help_ (google.cloud.compute_v1beta.types.Help):

            This field is a member of `oneof`_ ``_help``.
        localized_message (google.cloud.compute_v1beta.types.LocalizedMessage):

            This field is a member of `oneof`_ ``_localized_message``.
        quota_info (google.cloud.compute_v1beta.types.QuotaExceededInfo):

            This field is a member of `oneof`_ ``_quota_info``.
    """

    error_info: "ErrorInfo" = proto.Field(
        proto.MESSAGE,
        number=25251973,
        optional=True,
        message="ErrorInfo",
    )
    help_: "Help" = proto.Field(
        proto.MESSAGE,
        number=3198785,
        optional=True,
        message="Help",
    )
    localized_message: "LocalizedMessage" = proto.Field(
        proto.MESSAGE,
        number=404537155,
        optional=True,
        message="LocalizedMessage",
    )
    quota_info: "QuotaExceededInfo" = proto.Field(
        proto.MESSAGE,
        number=93923861,
        optional=True,
        message="QuotaExceededInfo",
    )


class ErrorInfo(proto.Message):
    r"""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" } }


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        domain (str):
            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".

            This field is a member of `oneof`_ ``_domain``.
        metadatas (MutableMapping[str, str]):
            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.
        reason (str):
            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.

            This field is a member of `oneof`_ ``_reason``.
    """

    domain: str = proto.Field(
        proto.STRING,
        number=284415172,
        optional=True,
    )
    metadatas: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=8514340,
    )
    reason: str = proto.Field(
        proto.STRING,
        number=138777156,
        optional=True,
    )


class Errors(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (str):
            [Output Only] The error type identifier for this error.

            This field is a member of `oneof`_ ``_code``.
        error_details (MutableSequence[google.cloud.compute_v1beta.types.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.
        location (str):
            [Output Only] Indicates the field in the request that caused
            the error. This property is optional.

            This field is a member of `oneof`_ ``_location``.
        message (str):
            [Output Only] An optional, human-readable error message.

            This field is a member of `oneof`_ ``_message``.
    """

    code: str = proto.Field(
        proto.STRING,
        number=3059181,
        optional=True,
    )
    error_details: MutableSequence["ErrorDetails"] = proto.RepeatedField(
        proto.MESSAGE,
        number=274653963,
        message="ErrorDetails",
    )
    location: str = proto.Field(
        proto.STRING,
        number=290430901,
        optional=True,
    )
    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )


class ExchangedPeeringRoute(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        dest_range (str):
            The destination range of the route.

            This field is a member of `oneof`_ ``_dest_range``.
        imported (bool):
            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.

            This field is a member of `oneof`_ ``_imported``.
        next_hop_region (str):
            The region of peering route next hop, only
            applies to dynamic routes.

            This field is a member of `oneof`_ ``_next_hop_region``.
        priority (int):
            The priority of the peering route.

            This field is a member of `oneof`_ ``_priority``.
        type_ (str):
            The type of the peering route.
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""The type of the peering route.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            DYNAMIC_PEERING_ROUTE (469794858):
                For routes exported from local network.
            STATIC_PEERING_ROUTE (473407545):
                The peering route.
            SUBNET_PEERING_ROUTE (465782504):
                The peering route corresponding to subnetwork
                range.
        """
        UNDEFINED_TYPE = 0
        DYNAMIC_PEERING_ROUTE = 469794858
        STATIC_PEERING_ROUTE = 473407545
        SUBNET_PEERING_ROUTE = 465782504

    dest_range: str = proto.Field(
        proto.STRING,
        number=381327712,
        optional=True,
    )
    imported: bool = proto.Field(
        proto.BOOL,
        number=114502404,
        optional=True,
    )
    next_hop_region: str = proto.Field(
        proto.STRING,
        number=122577014,
        optional=True,
    )
    priority: int = proto.Field(
        proto.UINT32,
        number=445151652,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class ExchangedPeeringRoutesList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.ExchangedPeeringRoute]):
            A list of ExchangedPeeringRoute resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#exchangedPeeringRoutesList for exchanged peering
            routes lists.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["ExchangedPeeringRoute"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="ExchangedPeeringRoute",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ExpandIpCidrRangeSubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.ExpandIpCidrRange. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        subnetwork (str):
            Name of the Subnetwork resource to update.
        subnetworks_expand_ip_cidr_range_request_resource (google.cloud.compute_v1beta.types.SubnetworksExpandIpCidrRangeRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
    )
    subnetworks_expand_ip_cidr_range_request_resource: "SubnetworksExpandIpCidrRangeRequest" = proto.Field(
        proto.MESSAGE,
        number=477014110,
        message="SubnetworksExpandIpCidrRangeRequest",
    )


class Expr(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            Optional. Description of the expression. This
            is a longer text which describes the expression,
            e.g. when hovered over it in a UI.

            This field is a member of `oneof`_ ``_description``.
        expression (str):
            Textual representation of an expression in
            Common Expression Language syntax.

            This field is a member of `oneof`_ ``_expression``.
        location (str):
            Optional. String indicating the location of
            the expression for error reporting, e.g. a file
            name and a position in the file.

            This field is a member of `oneof`_ ``_location``.
        title (str):
            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.

            This field is a member of `oneof`_ ``_title``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    expression: str = proto.Field(
        proto.STRING,
        number=352031384,
        optional=True,
    )
    location: str = proto.Field(
        proto.STRING,
        number=290430901,
        optional=True,
    )
    title: str = proto.Field(
        proto.STRING,
        number=110371416,
        optional=True,
    )


class ExternalVpnGateway(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        interfaces (MutableSequence[google.cloud.compute_v1beta.types.ExternalVpnGatewayInterface]):
            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.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#externalVpnGateway for externalVpnGateways.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this ExternalVpnGateway, which is essentially a
            hash of the labels set used for optimistic
            locking. The fingerprint is initially generated
            by Compute Engine and changes after every
            request to modify or update labels. You must
            always provide an up-to-date fingerprint hash in
            order to update or change labels, otherwise the
            request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve an
            ExternalVpnGateway.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        redundancy_type (str):
            Indicates the user-supplied redundancy type
            of this external VPN gateway. Check the
            RedundancyType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_redundancy_type``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    class RedundancyType(proto.Enum):
        r"""Indicates the user-supplied redundancy type of this external
        VPN gateway.

        Values:
            UNDEFINED_REDUNDANCY_TYPE (0):
                A value indicating that the enum field is not
                set.
            FOUR_IPS_REDUNDANCY (520087913):
                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 (133914873):
                The external VPN gateway has only one public
                IP address which internally provide redundancy
                or failover.
            TWO_IPS_REDUNDANCY (367049635):
                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.
        """
        UNDEFINED_REDUNDANCY_TYPE = 0
        FOUR_IPS_REDUNDANCY = 520087913
        SINGLE_IP_INTERNALLY_REDUNDANT = 133914873
        TWO_IPS_REDUNDANCY = 367049635

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    interfaces: MutableSequence["ExternalVpnGatewayInterface"] = proto.RepeatedField(
        proto.MESSAGE,
        number=12073562,
        message="ExternalVpnGatewayInterface",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    redundancy_type: str = proto.Field(
        proto.STRING,
        number=271443740,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class ExternalVpnGatewayInterface(proto.Message):
    r"""The interface for the external VPN gateway.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (int):
            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

            This field is a member of `oneof`_ ``_id``.
        ip_address (str):
            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.

            This field is a member of `oneof`_ ``_ip_address``.
        ipv6_address (str):
            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).

            This field is a member of `oneof`_ ``_ipv6_address``.
    """

    id: int = proto.Field(
        proto.UINT32,
        number=3355,
        optional=True,
    )
    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    ipv6_address: str = proto.Field(
        proto.STRING,
        number=341563804,
        optional=True,
    )


class ExternalVpnGatewayList(proto.Message):
    r"""Response to the list request, and contains a list of
    externalVpnGateways.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.ExternalVpnGateway]):
            A list of ExternalVpnGateway resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#externalVpnGatewayList for lists of
            externalVpnGateways.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["ExternalVpnGateway"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="ExternalVpnGateway",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FileContentBuffer(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        content (str):
            The raw content in the secure keys file.

            This field is a member of `oneof`_ ``_content``.
        file_type (str):
            The file type of source file.
            Check the FileType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_file_type``.
    """

    class FileType(proto.Enum):
        r"""The file type of source file.

        Values:
            UNDEFINED_FILE_TYPE (0):
                A value indicating that the enum field is not
                set.
            BIN (65767):
                No description available.
            UNDEFINED (137851184):
                No description available.
            X509 (2674086):
                No description available.
        """
        UNDEFINED_FILE_TYPE = 0
        BIN = 65767
        UNDEFINED = 137851184
        X509 = 2674086

    content: str = proto.Field(
        proto.STRING,
        number=414659705,
        optional=True,
    )
    file_type: str = proto.Field(
        proto.STRING,
        number=294346781,
        optional=True,
    )


class Firewall(proto.Message):
    r"""Represents a Firewall Rule resource. Firewall rules allow or
    deny ingress traffic to, and egress traffic from your instances.
    For more information, read Firewall rules.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        allowed (MutableSequence[google.cloud.compute_v1beta.types.Allowed]):
            The list of ALLOW rules specified by this
            firewall. Each rule specifies a protocol and
            port-range tuple that describes a permitted
            connection.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        denied (MutableSequence[google.cloud.compute_v1beta.types.Denied]):
            The list of DENY rules specified by this
            firewall. Each rule specifies a protocol and
            port-range tuple that describes a denied
            connection.
        description (str):
            An optional description of this resource.
            Provide this field when you create the resource.

            This field is a member of `oneof`_ ``_description``.
        destination_ranges (MutableSequence[str]):
            If destination ranges are specified, the
            firewall rule applies only to traffic that has
            destination IP address in these ranges. These
            ranges must be expressed in CIDR format. Both
            IPv4 and IPv6 are supported.
        direction (str):
            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. Check the Direction enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_direction``.
        disabled (bool):
            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.

            This field is a member of `oneof`_ ``_disabled``.
        enable_logging (bool):
            Deprecated in favor of enable in LogConfig.
            This field denotes whether to enable logging for
            a particular firewall rule. If logging is
            enabled, logs will be exported t Cloud Logging.

            This field is a member of `oneof`_ ``_enable_logging``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always compute#firewall
            for firewall rules.

            This field is a member of `oneof`_ ``_kind``.
        log_config (google.cloud.compute_v1beta.types.FirewallLogConfig):
            This field denotes the logging options for a
            particular firewall rule. If logging is enabled,
            logs will be exported to Cloud Logging.

            This field is a member of `oneof`_ ``_log_config``.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?``. The first character must be
            a lowercase letter, and all following characters (except for
            the last character) must be a dash, lowercase letter, or
            digit. The last character must be a lowercase letter or
            digit.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            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

            This field is a member of `oneof`_ ``_network``.
        params (google.cloud.compute_v1beta.types.FirewallParams):
            Input only. [Input Only] Additional params passed with the
            request, but not persisted as part of resource payload.

            This field is a member of `oneof`_ ``_params``.
        priority (int):
            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``.

            This field is a member of `oneof`_ ``_priority``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        source_ranges (MutableSequence[str]):
            If source ranges are specified, the firewall
            rule applies only to traffic that has a source
            IP address in these ranges. These ranges must be
            expressed in CIDR format. One or both of
            sourceRanges and sourceTags may be set. If both
            fields are set, the rule applies to traffic that
            has a source IP address within sourceRanges OR a
            source IP from a resource with a matching tag
            listed in the sourceTags field. The connection
            does not need to match both fields for the rule
            to apply. Both IPv4 and IPv6 are supported.
        source_service_accounts (MutableSequence[str]):
            If source service accounts are specified, the
            firewall rules apply only to traffic originating
            from an instance with a service account in this
            list. Source service accounts cannot be used to
            control traffic to an instance's external IP
            address because service accounts are associated
            with an instance, not an IP address.
            sourceRanges can be set at the same time as
            sourceServiceAccounts. If both are set, the
            firewall applies to traffic that has a source IP
            address within the sourceRanges OR a source IP
            that belongs to an instance with service account
            listed in sourceServiceAccount. The connection
            does not need to match both fields for the
            firewall to apply. sourceServiceAccounts cannot
            be used at the same time as sourceTags or
            targetTags.
        source_tags (MutableSequence[str]):
            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.
        target_service_accounts (MutableSequence[str]):
            A list of service accounts indicating sets of instances
            located in the network that may make network connections as
            specified in allowed[]. targetServiceAccounts cannot be used
            at the same time as targetTags or sourceTags. If neither
            targetServiceAccounts nor targetTags are specified, the
            firewall rule applies to all instances on the specified
            network.
        target_tags (MutableSequence[str]):
            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.
    """

    class Direction(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_DIRECTION (0):
                A value indicating that the enum field is not
                set.
            EGRESS (432880501):
                Indicates that firewall should apply to
                outgoing traffic.
            INGRESS (516931221):
                Indicates that firewall should apply to
                incoming traffic.
        """
        UNDEFINED_DIRECTION = 0
        EGRESS = 432880501
        INGRESS = 516931221

    allowed: MutableSequence["Allowed"] = proto.RepeatedField(
        proto.MESSAGE,
        number=162398632,
        message="Allowed",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    denied: MutableSequence["Denied"] = proto.RepeatedField(
        proto.MESSAGE,
        number=275217307,
        message="Denied",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    destination_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=305699879,
    )
    direction: str = proto.Field(
        proto.STRING,
        number=111150975,
        optional=True,
    )
    disabled: bool = proto.Field(
        proto.BOOL,
        number=270940796,
        optional=True,
    )
    enable_logging: bool = proto.Field(
        proto.BOOL,
        number=295396515,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    log_config: "FirewallLogConfig" = proto.Field(
        proto.MESSAGE,
        number=351299741,
        optional=True,
        message="FirewallLogConfig",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    params: "FirewallParams" = proto.Field(
        proto.MESSAGE,
        number=78313862,
        optional=True,
        message="FirewallParams",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    source_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=200097658,
    )
    source_service_accounts: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=105100756,
    )
    source_tags: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=452222397,
    )
    target_service_accounts: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=457639710,
    )
    target_tags: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=62901767,
    )


class FirewallList(proto.Message):
    r"""Contains a list of firewalls.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Firewall]):
            A list of Firewall resources.
        kind (str):
            [Output Only] Type of resource. Always compute#firewallList
            for lists of firewalls.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Firewall"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Firewall",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FirewallLogConfig(proto.Message):
    r"""The available logging options for a firewall rule.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable (bool):
            This field denotes whether to enable logging
            for a particular firewall rule.

            This field is a member of `oneof`_ ``_enable``.
        metadata (str):
            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.
            Check the Metadata enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_metadata``.
    """

    class Metadata(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_METADATA (0):
                A value indicating that the enum field is not
                set.
            EXCLUDE_ALL_METADATA (334519954):
                No description available.
            INCLUDE_ALL_METADATA (164619908):
                No description available.
        """
        UNDEFINED_METADATA = 0
        EXCLUDE_ALL_METADATA = 334519954
        INCLUDE_ALL_METADATA = 164619908

    enable: bool = proto.Field(
        proto.BOOL,
        number=311764355,
        optional=True,
    )
    metadata: str = proto.Field(
        proto.STRING,
        number=86866735,
        optional=True,
    )


class FirewallParams(proto.Message):
    r"""Additional firewall parameters.

    Attributes:
        resource_manager_tags (MutableMapping[str, str]):
            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.
    """

    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )


class FirewallPoliciesListAssociationsResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        associations (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyAssociation]):
            A list of associations.
        kind (str):
            [Output Only] Type of firewallPolicy associations. Always
            compute#FirewallPoliciesListAssociations for lists of
            firewallPolicy associations.

            This field is a member of `oneof`_ ``_kind``.
    """

    associations: MutableSequence["FirewallPolicyAssociation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=508736530,
        message="FirewallPolicyAssociation",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )


class FirewallPoliciesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policies (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicy]):
            A list of firewall policies contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of firewall policies when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    firewall_policies: MutableSequence["FirewallPolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=392512943,
        message="FirewallPolicy",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FirewallPolicy(proto.Message):
    r"""Represents a Firewall Policy resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        associations (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyAssociation]):
            A list of associations that belong to this
            firewall policy.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        display_name (str):
            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.

            This field is a member of `oneof`_ ``_display_name``.
        fingerprint (str):
            Specifies a fingerprint for this resource,
            which is essentially a hash of the metadata's
            contents and used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update metadata. You must always provide an
            up-to-date fingerprint hash in order to update
            or change metadata, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make get() request to the
            firewall policy.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output only] Type of the resource. Always
            compute#firewallPolicyfor firewall policies

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            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.

            This field is a member of `oneof`_ ``_name``.
        packet_mirroring_rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            A list of packet mirroring rules that belong
            to this policy.
        parent (str):
            [Output Only] The parent of the firewall policy. This field
            is not applicable to network firewall policies.

            This field is a member of `oneof`_ ``_parent``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        rule_tuple_count (int):
            [Output Only] Total count of all firewall policy rule
            tuples. A firewall policy can not exceed a set number of
            tuples.

            This field is a member of `oneof`_ ``_rule_tuple_count``.
        rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            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.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        short_name (str):
            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.

            This field is a member of `oneof`_ ``_short_name``.
    """

    associations: MutableSequence["FirewallPolicyAssociation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=508736530,
        message="FirewallPolicyAssociation",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    display_name: str = proto.Field(
        proto.STRING,
        number=4473832,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=531644356,
        message="FirewallPolicyRule",
    )
    parent: str = proto.Field(
        proto.STRING,
        number=78317738,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    rule_tuple_count: int = proto.Field(
        proto.INT32,
        number=388342037,
        optional=True,
    )
    rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="FirewallPolicyRule",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    short_name: str = proto.Field(
        proto.STRING,
        number=492051566,
        optional=True,
    )


class FirewallPolicyAssociation(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attachment_target (str):
            The target that the firewall policy is
            attached to.

            This field is a member of `oneof`_ ``_attachment_target``.
        display_name (str):
            [Output Only] Deprecated, please use short name instead. The
            display name of the firewall policy of the association.

            This field is a member of `oneof`_ ``_display_name``.
        firewall_policy_id (str):
            [Output Only] The firewall policy ID of the association.

            This field is a member of `oneof`_ ``_firewall_policy_id``.
        name (str):
            The name for an association.

            This field is a member of `oneof`_ ``_name``.
        priority (int):
            An integer indicating the priority of an association. The
            priority must be a positive value between 1 and 2147483647.
            Firewall Policies are evaluated from highest to lowest
            priority where 1 is the highest priority and 2147483647 is
            the lowest priority. The default value is ``1000``. If two
            associations have the same priority then lexicographical
            order on association names is applied.

            This field is a member of `oneof`_ ``_priority``.
        short_name (str):
            [Output Only] The short name of the firewall policy of the
            association.

            This field is a member of `oneof`_ ``_short_name``.
    """

    attachment_target: str = proto.Field(
        proto.STRING,
        number=175773741,
        optional=True,
    )
    display_name: str = proto.Field(
        proto.STRING,
        number=4473832,
        optional=True,
    )
    firewall_policy_id: str = proto.Field(
        proto.STRING,
        number=357211849,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    short_name: str = proto.Field(
        proto.STRING,
        number=492051566,
        optional=True,
    )


class FirewallPolicyList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicy]):
            A list of FirewallPolicy resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#firewallPolicyList for listsof FirewallPolicies

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["FirewallPolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="FirewallPolicy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FirewallPolicyRule(proto.Message):
    r"""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).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        action (str):
            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".

            This field is a member of `oneof`_ ``_action``.
        description (str):
            An optional description for this resource.

            This field is a member of `oneof`_ ``_description``.
        direction (str):
            The direction in which this rule applies.
            Check the Direction enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_direction``.
        disabled (bool):
            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.

            This field is a member of `oneof`_ ``_disabled``.
        enable_logging (bool):
            Denotes whether to enable logging for a particular rule. If
            logging is enabled, logs will be exported to the configured
            export destination in Stackdriver. Logs may be exported to
            BigQuery or Pub/Sub. Note: you cannot enable logging on
            "goto_next" rules.

            This field is a member of `oneof`_ ``_enable_logging``.
        kind (str):
            [Output only] Type of the resource. Returns
            compute#firewallPolicyRule for firewall rules and
            compute#packetMirroringRule for packet mirroring rules.

            This field is a member of `oneof`_ ``_kind``.
        match (google.cloud.compute_v1beta.types.FirewallPolicyRuleMatcher):
            A match condition that incoming traffic is
            evaluated against. If it evaluates to true, the
            corresponding 'action' is enforced.

            This field is a member of `oneof`_ ``_match``.
        priority (int):
            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.

            This field is a member of `oneof`_ ``_priority``.
        rule_name (str):
            An optional name for the rule. This field is
            not a unique identifier and can be updated.

            This field is a member of `oneof`_ ``_rule_name``.
        rule_tuple_count (int):
            [Output Only] Calculation of the complexity of a single
            firewall policy rule.

            This field is a member of `oneof`_ ``_rule_tuple_count``.
        security_profile_group (str):
            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.

            This field is a member of `oneof`_ ``_security_profile_group``.
        target_resources (MutableSequence[str]):
            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.
        target_secure_tags (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRuleSecureTag]):
            A list of secure tags that controls which instances the
            firewall rule applies to. If targetSecureTag are specified,
            then the firewall rule applies only to instances in the VPC
            network that have one of those EFFECTIVE secure tags, if all
            the target_secure_tag are in INEFFECTIVE state, then this
            rule will be ignored. targetSecureTag may not be set at the
            same time as targetServiceAccounts. If neither
            targetServiceAccounts nor targetSecureTag are specified, the
            firewall rule applies to all instances on the specified
            network. Maximum number of target label tags allowed is 256.
        target_service_accounts (MutableSequence[str]):
            A list of service accounts indicating the
            sets of instances that are applied with this
            rule.
        tls_inspect (bool):
            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.

            This field is a member of `oneof`_ ``_tls_inspect``.
    """

    class Direction(proto.Enum):
        r"""The direction in which this rule applies.

        Values:
            UNDEFINED_DIRECTION (0):
                A value indicating that the enum field is not
                set.
            EGRESS (432880501):
                No description available.
            INGRESS (516931221):
                No description available.
        """
        UNDEFINED_DIRECTION = 0
        EGRESS = 432880501
        INGRESS = 516931221

    action: str = proto.Field(
        proto.STRING,
        number=187661878,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    direction: str = proto.Field(
        proto.STRING,
        number=111150975,
        optional=True,
    )
    disabled: bool = proto.Field(
        proto.BOOL,
        number=270940796,
        optional=True,
    )
    enable_logging: bool = proto.Field(
        proto.BOOL,
        number=295396515,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    match: "FirewallPolicyRuleMatcher" = proto.Field(
        proto.MESSAGE,
        number=103668165,
        optional=True,
        message="FirewallPolicyRuleMatcher",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    rule_name: str = proto.Field(
        proto.STRING,
        number=55286254,
        optional=True,
    )
    rule_tuple_count: int = proto.Field(
        proto.INT32,
        number=388342037,
        optional=True,
    )
    security_profile_group: str = proto.Field(
        proto.STRING,
        number=207411626,
        optional=True,
    )
    target_resources: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=528230647,
    )
    target_secure_tags: MutableSequence[
        "FirewallPolicyRuleSecureTag"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=468132403,
        message="FirewallPolicyRuleSecureTag",
    )
    target_service_accounts: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=457639710,
    )
    tls_inspect: bool = proto.Field(
        proto.BOOL,
        number=43425488,
        optional=True,
    )


class FirewallPolicyRuleMatcher(proto.Message):
    r"""Represents a match condition that incoming traffic is
    evaluated against. Exactly one field must be specified.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        dest_address_groups (MutableSequence[str]):
            Address groups which should be matched
            against the traffic destination. Maximum number
            of destination address groups is 10.
        dest_fqdns (MutableSequence[str]):
            Fully Qualified Domain Name (FQDN) which
            should be matched against traffic destination.
            Maximum number of destination fqdn allowed is
            100.
        dest_ip_ranges (MutableSequence[str]):
            CIDR IP address range. Maximum number of
            destination CIDR IP ranges allowed is 5000.
        dest_network_scope (str):
            Network scope of the traffic destination.
            Check the DestNetworkScope enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_dest_network_scope``.
        dest_network_type (str):
            Network type of the traffic destination. Allowed values are:
            - UNSPECIFIED - INTERNET - NON_INTERNET Check the
            DestNetworkType enum for the list of possible values.

            This field is a member of `oneof`_ ``_dest_network_type``.
        dest_region_codes (MutableSequence[str]):
            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.
        dest_threat_intelligences (MutableSequence[str]):
            Names of Network Threat Intelligence lists.
            The IPs in these lists will be matched against
            traffic destination.
        layer4_configs (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRuleMatcherLayer4Config]):
            Pairs of IP protocols and ports that the rule
            should match.
        src_address_groups (MutableSequence[str]):
            Address groups which should be matched
            against the traffic source. Maximum number of
            source address groups is 10.
        src_fqdns (MutableSequence[str]):
            Fully Qualified Domain Name (FQDN) which
            should be matched against traffic source.
            Maximum number of source fqdn allowed is 100.
        src_ip_ranges (MutableSequence[str]):
            CIDR IP address range. Maximum number of
            source CIDR IP ranges allowed is 5000.
        src_network_scope (str):
            Network scope of the traffic source.
            Check the SrcNetworkScope enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_src_network_scope``.
        src_network_type (str):
            Network type of the traffic source. Allowed values are: -
            UNSPECIFIED - INTERNET - INTRA_VPC - NON_INTERNET -
            VPC_NETWORKS Check the SrcNetworkType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_src_network_type``.
        src_networks (MutableSequence[str]):
            Networks of the traffic source. It can be
            either a full or partial url.
        src_region_codes (MutableSequence[str]):
            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.
        src_secure_tags (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRuleSecureTag]):
            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.
        src_threat_intelligences (MutableSequence[str]):
            Names of Network Threat Intelligence lists.
            The IPs in these lists will be matched against
            traffic source.
    """

    class DestNetworkScope(proto.Enum):
        r"""Network scope of the traffic destination. Additional supported
        values which may be not listed in the enum directly due to technical
        reasons: INTERNET INTRA_VPC NON_INTERNET UNSPECIFIED VPC_NETWORKS

        Values:
            UNDEFINED_DEST_NETWORK_SCOPE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_DEST_NETWORK_SCOPE = 0

    class DestNetworkType(proto.Enum):
        r"""Network type of the traffic destination. Allowed values are: -
        UNSPECIFIED - INTERNET - NON_INTERNET Additional supported values
        which may be not listed in the enum directly due to technical
        reasons: INTERNET INTRA_VPC NON_INTERNET UNSPECIFIED VPC_NETWORKS

        Values:
            UNDEFINED_DEST_NETWORK_TYPE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_DEST_NETWORK_TYPE = 0

    class SrcNetworkScope(proto.Enum):
        r"""Network scope of the traffic source. Additional supported values
        which may be not listed in the enum directly due to technical
        reasons: INTERNET INTRA_VPC NON_INTERNET UNSPECIFIED VPC_NETWORKS

        Values:
            UNDEFINED_SRC_NETWORK_SCOPE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_SRC_NETWORK_SCOPE = 0

    class SrcNetworkType(proto.Enum):
        r"""Network type of the traffic source. Allowed values are: -
        UNSPECIFIED - INTERNET - INTRA_VPC - NON_INTERNET - VPC_NETWORKS
        Additional supported values which may be not listed in the enum
        directly due to technical reasons: INTERNET INTRA_VPC NON_INTERNET
        UNSPECIFIED VPC_NETWORKS

        Values:
            UNDEFINED_SRC_NETWORK_TYPE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_SRC_NETWORK_TYPE = 0

    dest_address_groups: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=468760508,
    )
    dest_fqdns: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=370712737,
    )
    dest_ip_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337357713,
    )
    dest_network_scope: str = proto.Field(
        proto.STRING,
        number=355839526,
        optional=True,
    )
    dest_network_type: str = proto.Field(
        proto.STRING,
        number=409853224,
        optional=True,
    )
    dest_region_codes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=199120280,
    )
    dest_threat_intelligences: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=119896492,
    )
    layer4_configs: MutableSequence[
        "FirewallPolicyRuleMatcherLayer4Config"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=373534261,
        message="FirewallPolicyRuleMatcherLayer4Config",
    )
    src_address_groups: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=436423738,
    )
    src_fqdns: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=435906147,
    )
    src_ip_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=432128083,
    )
    src_network_scope: str = proto.Field(
        proto.STRING,
        number=476025320,
        optional=True,
    )
    src_network_type: str = proto.Field(
        proto.STRING,
        number=309819686,
        optional=True,
    )
    src_networks: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=247119872,
    )
    src_region_codes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=99086742,
    )
    src_secure_tags: MutableSequence[
        "FirewallPolicyRuleSecureTag"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=508791302,
        message="FirewallPolicyRuleSecureTag",
    )
    src_threat_intelligences: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=323631018,
    )


class FirewallPolicyRuleMatcherLayer4Config(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_protocol (str):
            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.

            This field is a member of `oneof`_ ``_ip_protocol``.
        ports (MutableSequence[str]):
            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"].
    """

    ip_protocol: str = proto.Field(
        proto.STRING,
        number=475958960,
        optional=True,
    )
    ports: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=106854418,
    )


class FirewallPolicyRuleSecureTag(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of the secure tag, created with
            TagManager's TagValue API.

            This field is a member of `oneof`_ ``_name``.
        state (str):
            [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. Check the State enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
    """

    class State(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            EFFECTIVE (244201863):
                No description available.
            INEFFECTIVE (304458242):
                No description available.
        """
        UNDEFINED_STATE = 0
        EFFECTIVE = 244201863
        INEFFECTIVE = 304458242

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )


class FixedOrPercent(proto.Message):
    r"""Encapsulates numeric value that can be either absolute or
    relative.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        calculated (int):
            [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.

            This field is a member of `oneof`_ ``_calculated``.
        fixed (int):
            Specifies a fixed number of VM instances.
            This must be a positive integer.

            This field is a member of `oneof`_ ``_fixed``.
        percent (int):
            Specifies a percentage of instances between 0
            to 100%, inclusive. For example, specify 80 for
            80%.

            This field is a member of `oneof`_ ``_percent``.
    """

    calculated: int = proto.Field(
        proto.INT32,
        number=472082878,
        optional=True,
    )
    fixed: int = proto.Field(
        proto.INT32,
        number=97445748,
        optional=True,
    )
    percent: int = proto.Field(
        proto.INT32,
        number=394814533,
        optional=True,
    )


class FlexibleTimeRange(proto.Message):
    r"""A flexible specification of a time range that has 3 points of
    flexibility: (1) a flexible start time, (2) a flexible end time,
    (3) a flexible duration. It is possible to specify a
    contradictory time range that cannot be matched by any Interval.
    This causes a validation error.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        end_time_not_earlier_than (str):

            This field is a member of `oneof`_ ``_end_time_not_earlier_than``.
        end_time_not_later_than (str):

            This field is a member of `oneof`_ ``_end_time_not_later_than``.
        max_duration (str):

            This field is a member of `oneof`_ ``_max_duration``.
        min_duration (str):

            This field is a member of `oneof`_ ``_min_duration``.
        start_time_not_earlier_than (str):

            This field is a member of `oneof`_ ``_start_time_not_earlier_than``.
        start_time_not_later_than (str):

            This field is a member of `oneof`_ ``_start_time_not_later_than``.
    """

    end_time_not_earlier_than: str = proto.Field(
        proto.STRING,
        number=83355642,
        optional=True,
    )
    end_time_not_later_than: str = proto.Field(
        proto.STRING,
        number=526866094,
        optional=True,
    )
    max_duration: str = proto.Field(
        proto.STRING,
        number=39954959,
        optional=True,
    )
    min_duration: str = proto.Field(
        proto.STRING,
        number=514381025,
        optional=True,
    )
    start_time_not_earlier_than: str = proto.Field(
        proto.STRING,
        number=490386497,
        optional=True,
    )
    start_time_not_later_than: str = proto.Field(
        proto.STRING,
        number=212764853,
        optional=True,
    )


class ForwardingRule(proto.Message):
    r"""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/beta/globalForwardingRules>`__
    \*
    `Regional <https://cloud.google.com/compute/docs/reference/rest/beta/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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        I_p_address (str):
            IP address for which this forwarding rule accepts traffic.
            When a client sends traffic to this IP address, the
            forwarding rule directs the traffic to the referenced target
            or backendService. While creating a forwarding rule,
            specifying an IPAddress is required under the following
            circumstances: - When the target is set to targetGrpcProxy
            and validateForProxyless is set to true, the IPAddress
            should be set to 0.0.0.0. - When the target is a Private
            Service Connect Google APIs bundle, you must specify an
            IPAddress. Otherwise, you can optionally specify an IP
            address that references an existing static (reserved) IP
            address resource. When omitted, Google Cloud assigns an
            ephemeral IP address. Use one of the following formats to
            specify an IP address while creating a forwarding rule: \*
            IP address number, as in ``100.1.2.3`` \* IPv6 address
            range, as in ``2600:1234::/96`` \* Full resource URL, as in
            https://www.googleapis.com/compute/v1/projects/
            project_id/regions/region/addresses/address-name \* Partial
            URL or by name, as in: -
            projects/project_id/regions/region/addresses/address-name -
            regions/region/addresses/address-name -
            global/addresses/address-name - address-name The forwarding
            rule's target or backendService, and in most cases, also the
            loadBalancingScheme, determine the type of IP address that
            you can use. For detailed information, see `IP address
            specifications <https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications>`__.
            When reading an IPAddress, the API always returns the IP
            address number.

            This field is a member of `oneof`_ ``_I_p_address``.
        I_p_protocol (str):
            The IP protocol to which this rule applies. For protocol
            forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP
            and L3_DEFAULT. The valid IP protocols are different for
            different load balancing products as described in `Load
            balancing
            features <https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends>`__.
            Check the IPProtocolEnum enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_I_p_protocol``.
        all_ports (bool):
            The ports, portRange, and allPorts fields are mutually
            exclusive. Only packets addressed to ports in the specified
            range will be forwarded to the backends configured with this
            forwarding rule. The allPorts field has the following
            limitations: - It requires that the forwarding rule
            IPProtocol be TCP, UDP, SCTP, or L3_DEFAULT. - It's
            applicable only to the following products: internal
            passthrough Network Load Balancers, backend service-based
            external passthrough Network Load Balancers, and internal
            and external protocol forwarding. - Set this field to true
            to allow packets addressed to any port or packets lacking
            destination port information (for example, UDP fragments
            after the first fragment) to be forwarded to the backends
            configured with this forwarding rule. The L3_DEFAULT
            protocol requires allPorts be set to true.

            This field is a member of `oneof`_ ``_all_ports``.
        allow_global_access (bool):
            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.

            This field is a member of `oneof`_ ``_allow_global_access``.
        allow_psc_global_access (bool):
            This is used in PSC consumer ForwardingRule
            to control whether the PSC endpoint can be
            accessed from another region.

            This field is a member of `oneof`_ ``_allow_psc_global_access``.
        allow_psc_packet_injection (bool):
            This is used in PSC consumer ForwardingRule to control
            whether the producer is allowed to inject packets into the
            consumer's network. If set to true, the target service
            attachment must have tunneling enabled and
            TunnelingConfig.RoutingMode set to PACKET_INJECTION Non-PSC
            forwarding rules should not use this field.

            This field is a member of `oneof`_ ``_allow_psc_packet_injection``.
        backend_service (str):
            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.

            This field is a member of `oneof`_ ``_backend_service``.
        base_forwarding_rule (str):
            [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.

            This field is a member of `oneof`_ ``_base_forwarding_rule``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        external_managed_backend_bucket_migration_state (str):
            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.
            Check the ExternalManagedBackendBucketMigrationState enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_external_managed_backend_bucket_migration_state``.
        external_managed_backend_bucket_migration_testing_percentage (float):
            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.

            This field is a member of `oneof`_ ``_external_managed_backend_bucket_migration_testing_percentage``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        ip_collection (str):
            Resource reference of a PublicDelegatedPrefix. The PDP must
            be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.
            Use one of the following formats to specify a sub-PDP when
            creating an IPv6 NetLB forwarding rule using BYOIP: Full
            resource URL, as in
            https://www.googleapis.com/compute/v1/projects/project_id/regions/region
            /publicDelegatedPrefixes/sub-pdp-name Partial URL, as in: -
            projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
            - regions/region/publicDelegatedPrefixes/sub-pdp-name

            This field is a member of `oneof`_ ``_ip_collection``.
        ip_version (str):
            The IP Version that will be used by this
            forwarding rule. Valid options are IPV4 or IPV6.
            Check the IpVersion enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_ip_version``.
        is_mirroring_collector (bool):
            Indicates whether or not this load balancer
            can be used as a collector for packet mirroring.
            To prevent mirroring loops, instances behind
            this load balancer will not have their traffic
            mirrored even if a PacketMirroring rule applies
            to them. This can only be set to true for load
            balancers that have their loadBalancingScheme
            set to INTERNAL.

            This field is a member of `oneof`_ ``_is_mirroring_collector``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#forwardingRule for forwarding rule resources.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this resource, which is essentially a hash of
            the labels set used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash in order to update
            or change labels, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve a ForwardingRule.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        load_balancing_scheme (str):
            Specifies the forwarding rule type. For more
            information about forwarding rules, refer to
            Forwarding rule concepts. Check the
            LoadBalancingScheme enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_load_balancing_scheme``.
        metadata_filters (MutableSequence[google.cloud.compute_v1beta.types.MetadataFilter]):
            Opaque filter criteria used by load balancer to restrict
            routing configuration to a limited set of xDS compliant
            clients. In their xDS requests to load balancer, xDS clients
            present node metadata. When there is a match, the relevant
            configuration is made available to those proxies. Otherwise,
            all the resources (e.g. TargetHttpProxy, UrlMap) referenced
            by the ForwardingRule are not visible to those proxies. For
            each metadataFilter in this list, if its filterMatchCriteria
            is set to MATCH_ANY, at least one of the filterLabels must
            match the corresponding label provided in the metadata. If
            its filterMatchCriteria is set to MATCH_ALL, then all of its
            filterLabels must match with corresponding labels provided
            in the metadata. If multiple metadataFilters are specified,
            all of them need to be satisfied in order to be considered a
            match. metadataFilters specified here will be applifed
            before those specified in the UrlMap that this
            ForwardingRule references. metadataFilters only applies to
            Loadbalancers that have their loadBalancingScheme set to
            INTERNAL_SELF_MANAGED.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash. For
            Private Service Connect forwarding rules that forward
            traffic to Google APIs, the forwarding rule name must be a
            1-20 characters string with lowercase letters and numbers
            and must start with a letter.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            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.

            This field is a member of `oneof`_ ``_network``.
        network_tier (str):
            This signifies the networking tier used for
            configuring this load balancer and can only take
            the following values: PREMIUM, STANDARD. For
            regional ForwardingRule, the valid values are
            PREMIUM and STANDARD. For GlobalForwardingRule,
            the valid value is PREMIUM. If this field is not
            specified, it is assumed to be PREMIUM. If
            IPAddress is specified, this value must be equal
            to the networkTier of the Address. Check the
            NetworkTier enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_network_tier``.
        no_automate_dns_zone (bool):
            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.

            This field is a member of `oneof`_ ``_no_automate_dns_zone``.
        port_range (str):
            The ports, portRange, and allPorts fields are mutually
            exclusive. Only packets addressed to ports in the specified
            range will be forwarded to the backends configured with this
            forwarding rule. The portRange field has the following
            limitations: - It requires that the forwarding rule
            IPProtocol be TCP, UDP, or SCTP, and - It's applicable only
            to the following products: external passthrough Network Load
            Balancers, internal and external proxy Network Load
            Balancers, internal and external Application Load Balancers,
            external protocol forwarding, and Classic VPN. - Some
            products have restrictions on what ports can be used. See
            port specifications for details. For external forwarding
            rules, two or more forwarding rules cannot use the same
            [IPAddress, IPProtocol] pair, and cannot have overlapping
            portRanges. For internal forwarding rules within the same
            VPC network, two or more forwarding rules cannot use the
            same [IPAddress, IPProtocol] pair, and cannot have
            overlapping portRanges. @pattern: \\d+(?:-\d+)?

            This field is a member of `oneof`_ ``_port_range``.
        ports (MutableSequence[str]):
            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+)?
        psc_connection_id (int):
            [Output Only] The PSC connection id of the PSC forwarding
            rule.

            This field is a member of `oneof`_ ``_psc_connection_id``.
        psc_connection_status (str):
            Check the PscConnectionStatus enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_psc_connection_status``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        service_directory_registrations (MutableSequence[google.cloud.compute_v1beta.types.ForwardingRuleServiceDirectoryRegistration]):
            Service Directory resources to register this
            forwarding rule with. Currently, only supports a
            single Service Directory resource.
        service_label (str):
            An optional prefix to the service name for this forwarding
            rule. If specified, the prefix is the first label of the
            fully qualified service name. The label must be 1-63
            characters long, and comply with RFC1035. Specifically, the
            label must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.
            This field is only used for internal load balancing.

            This field is a member of `oneof`_ ``_service_label``.
        service_name (str):
            [Output Only] The internal fully qualified service name for
            this forwarding rule. This field is only used for internal
            load balancing.

            This field is a member of `oneof`_ ``_service_name``.
        source_ip_ranges (MutableSequence[str]):
            If not empty, this forwarding rule will only forward the
            traffic when the source IP address matches one of the IP
            addresses or CIDR ranges set here. Note that a forwarding
            rule can only have up to 64 source IP ranges, and this field
            can only be used with a regional forwarding rule whose
            scheme is EXTERNAL. Each source_ip_range entry should be
            either an IP address (for example, 1.2.3.4) or a CIDR range
            (for example, 1.2.3.0/24).
        subnetwork (str):
            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.

            This field is a member of `oneof`_ ``_subnetwork``.
        target (str):
            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.

            This field is a member of `oneof`_ ``_target``.
    """

    class ExternalManagedBackendBucketMigrationState(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_EXTERNAL_MANAGED_BACKEND_BUCKET_MIGRATION_STATE (0):
                A value indicating that the enum field is not
                set.
            PREPARE (399612135):
                No description available.
            TEST_ALL_TRAFFIC (79728882):
                No description available.
            TEST_BY_PERCENTAGE (513738389):
                No description available.
        """
        UNDEFINED_EXTERNAL_MANAGED_BACKEND_BUCKET_MIGRATION_STATE = 0
        PREPARE = 399612135
        TEST_ALL_TRAFFIC = 79728882
        TEST_BY_PERCENTAGE = 513738389

    class IPProtocolEnum(proto.Enum):
        r"""The IP protocol to which this rule applies. For protocol forwarding,
        valid options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT. The
        valid IP protocols are different for different load balancing
        products as described in `Load balancing
        features <https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends>`__.

        Values:
            UNDEFINED_I_P_PROTOCOL_ENUM (0):
                A value indicating that the enum field is not
                set.
            AH (2087):
                No description available.
            ESP (68962):
                No description available.
            ICMP (2241597):
                No description available.
            L3_DEFAULT (48151369):
                No description available.
            SCTP (2539724):
                No description available.
            TCP (82881):
                No description available.
            UDP (83873):
                No description available.
        """
        UNDEFINED_I_P_PROTOCOL_ENUM = 0
        AH = 2087
        ESP = 68962
        ICMP = 2241597
        L3_DEFAULT = 48151369
        SCTP = 2539724
        TCP = 82881
        UDP = 83873

    class IpVersion(proto.Enum):
        r"""The IP Version that will be used by this forwarding rule.
        Valid options are IPV4 or IPV6.

        Values:
            UNDEFINED_IP_VERSION (0):
                A value indicating that the enum field is not
                set.
            IPV4 (2254341):
                No description available.
            IPV6 (2254343):
                No description available.
            UNSPECIFIED_VERSION (21850000):
                No description available.
        """
        UNDEFINED_IP_VERSION = 0
        IPV4 = 2254341
        IPV6 = 2254343
        UNSPECIFIED_VERSION = 21850000

    class LoadBalancingScheme(proto.Enum):
        r"""Specifies the forwarding rule type. For more information
        about forwarding rules, refer to Forwarding rule concepts.

        Values:
            UNDEFINED_LOAD_BALANCING_SCHEME (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL (35607499):
                No description available.
            EXTERNAL_MANAGED (512006923):
                No description available.
            INTERNAL (279295677):
                No description available.
            INTERNAL_MANAGED (37350397):
                No description available.
            INTERNAL_SELF_MANAGED (236211150):
                No description available.
            INVALID (530283991):
                No description available.
        """
        UNDEFINED_LOAD_BALANCING_SCHEME = 0
        EXTERNAL = 35607499
        EXTERNAL_MANAGED = 512006923
        INTERNAL = 279295677
        INTERNAL_MANAGED = 37350397
        INTERNAL_SELF_MANAGED = 236211150
        INVALID = 530283991

    class NetworkTier(proto.Enum):
        r"""This signifies the networking tier used for configuring this
        load balancer and can only take the following values: PREMIUM,
        STANDARD. For regional ForwardingRule, the valid values are
        PREMIUM and STANDARD. For GlobalForwardingRule, the valid value
        is PREMIUM. If this field is not specified, it is assumed to be
        PREMIUM. If IPAddress is specified, this value must be equal to
        the networkTier of the Address.

        Values:
            UNDEFINED_NETWORK_TIER (0):
                A value indicating that the enum field is not
                set.
            FIXED_STANDARD (310464328):
                Public internet quality with fixed bandwidth.
            PREMIUM (399530551):
                High quality, Google-grade network tier,
                support for all networking products.
            STANDARD (484642493):
                Public internet quality, only limited support
                for other networking products.
            STANDARD_OVERRIDES_FIXED_STANDARD (465847234):
                (Output only) Temporary tier for FIXED_STANDARD when fixed
                standard tier is expired or not configured.
        """
        UNDEFINED_NETWORK_TIER = 0
        FIXED_STANDARD = 310464328
        PREMIUM = 399530551
        STANDARD = 484642493
        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234

    class PscConnectionStatus(proto.Enum):
        r"""

        Values:
            UNDEFINED_PSC_CONNECTION_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACCEPTED (246714279):
                The connection has been accepted by the
                producer.
            CLOSED (380163436):
                The connection has been closed by the
                producer and will not serve traffic going
                forward.
            NEEDS_ATTENTION (344491452):
                The connection has been accepted by the
                producer, but the producer needs to take further
                action before the forwarding rule can serve
                traffic.
            PENDING (35394935):
                The connection is pending acceptance by the
                producer.
            REJECTED (174130302):
                The connection has been rejected by the
                producer.
            STATUS_UNSPECIFIED (42133066):
                No description available.
        """
        UNDEFINED_PSC_CONNECTION_STATUS = 0
        ACCEPTED = 246714279
        CLOSED = 380163436
        NEEDS_ATTENTION = 344491452
        PENDING = 35394935
        REJECTED = 174130302
        STATUS_UNSPECIFIED = 42133066

    I_p_address: str = proto.Field(
        proto.STRING,
        number=42976943,
        optional=True,
    )
    I_p_protocol: str = proto.Field(
        proto.STRING,
        number=488094525,
        optional=True,
    )
    all_ports: bool = proto.Field(
        proto.BOOL,
        number=445175796,
        optional=True,
    )
    allow_global_access: bool = proto.Field(
        proto.BOOL,
        number=499409674,
        optional=True,
    )
    allow_psc_global_access: bool = proto.Field(
        proto.BOOL,
        number=263471819,
        optional=True,
    )
    allow_psc_packet_injection: bool = proto.Field(
        proto.BOOL,
        number=272272565,
        optional=True,
    )
    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
        optional=True,
    )
    base_forwarding_rule: str = proto.Field(
        proto.STRING,
        number=524873104,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    external_managed_backend_bucket_migration_state: str = proto.Field(
        proto.STRING,
        number=107811370,
        optional=True,
    )
    external_managed_backend_bucket_migration_testing_percentage: float = proto.Field(
        proto.FLOAT,
        number=105676592,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    ip_collection: str = proto.Field(
        proto.STRING,
        number=176818358,
        optional=True,
    )
    ip_version: str = proto.Field(
        proto.STRING,
        number=294959552,
        optional=True,
    )
    is_mirroring_collector: bool = proto.Field(
        proto.BOOL,
        number=119255164,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    load_balancing_scheme: str = proto.Field(
        proto.STRING,
        number=363890244,
        optional=True,
    )
    metadata_filters: MutableSequence["MetadataFilter"] = proto.RepeatedField(
        proto.MESSAGE,
        number=464725739,
        message="MetadataFilter",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    network_tier: str = proto.Field(
        proto.STRING,
        number=517397843,
        optional=True,
    )
    no_automate_dns_zone: bool = proto.Field(
        proto.BOOL,
        number=64546991,
        optional=True,
    )
    port_range: str = proto.Field(
        proto.STRING,
        number=217518079,
        optional=True,
    )
    ports: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=106854418,
    )
    psc_connection_id: int = proto.Field(
        proto.UINT64,
        number=292082397,
        optional=True,
    )
    psc_connection_status: str = proto.Field(
        proto.STRING,
        number=184149172,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    service_directory_registrations: MutableSequence[
        "ForwardingRuleServiceDirectoryRegistration"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=223549694,
        message="ForwardingRuleServiceDirectoryRegistration",
    )
    service_label: str = proto.Field(
        proto.STRING,
        number=417008874,
        optional=True,
    )
    service_name: str = proto.Field(
        proto.STRING,
        number=359880149,
        optional=True,
    )
    source_ip_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=111563210,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )
    target: str = proto.Field(
        proto.STRING,
        number=192835985,
        optional=True,
    )


class ForwardingRuleAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.ForwardingRulesScopedList]):
            A list of ForwardingRulesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#forwardingRuleAggregatedList for lists of forwarding
            rules.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "ForwardingRulesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="ForwardingRulesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ForwardingRuleList(proto.Message):
    r"""Contains a list of ForwardingRule resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.ForwardingRule]):
            A list of ForwardingRule resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["ForwardingRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="ForwardingRule",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ForwardingRuleReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule (str):

            This field is a member of `oneof`_ ``_forwarding_rule``.
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
        optional=True,
    )


class ForwardingRuleServiceDirectoryRegistration(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        namespace (str):
            Service Directory namespace to register the
            forwarding rule under.

            This field is a member of `oneof`_ ``_namespace``.
        service (str):
            Service Directory service to register the
            forwarding rule under.

            This field is a member of `oneof`_ ``_service``.
        service_directory_region (str):
            [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.

            This field is a member of `oneof`_ ``_service_directory_region``.
    """

    namespace: str = proto.Field(
        proto.STRING,
        number=178476379,
        optional=True,
    )
    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )
    service_directory_region: str = proto.Field(
        proto.STRING,
        number=74030416,
        optional=True,
    )


class ForwardingRulesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rules (MutableSequence[google.cloud.compute_v1beta.types.ForwardingRule]):
            A list of forwarding rules contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of forwarding rules when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    forwarding_rules: MutableSequence["ForwardingRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=315821365,
        message="ForwardingRule",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FutureReservation(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        aggregate_reservation (google.cloud.compute_v1beta.types.AllocationAggregateReservation):
            Aggregate reservation details for the future
            reservation.

            This field is a member of `oneof`_ ``_aggregate_reservation``.
        auto_created_reservations_delete_time (str):
            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.

            This field is a member of `oneof`_ ``_auto_created_reservations_delete_time``.
        auto_created_reservations_duration (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_auto_created_reservations_duration``.
        auto_delete_auto_created_reservations (bool):
            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.

            This field is a member of `oneof`_ ``_auto_delete_auto_created_reservations``.
        commitment_info (google.cloud.compute_v1beta.types.FutureReservationCommitmentInfo):
            If not present, then FR will not deliver a
            new commitment or update an existing commitment.

            This field is a member of `oneof`_ ``_commitment_info``.
        creation_timestamp (str):
            [Output Only] The creation timestamp for this future
            reservation in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deployment_type (str):
            Type of the deployment requested as part of
            future reservation. Check the DeploymentType
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_deployment_type``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the future
            reservation.

            This field is a member of `oneof`_ ``_description``.
        enable_emergent_maintenance (bool):
            Indicates if this group of VMs have emergent
            maintenance enabled.

            This field is a member of `oneof`_ ``_enable_emergent_maintenance``.
        id (int):
            [Output Only] A unique identifier for this future
            reservation. The server defines this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#futureReservation for future reservations.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            The name of the resource, provided by the client when
            initially creating the resource. The resource name must be
            1-63 characters long, and comply with RFC1035. Specifically,
            the name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        name_prefix (str):
            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-####.

            This field is a member of `oneof`_ ``_name_prefix``.
        planning_status (str):
            Planning state before being submitted for
            evaluation Check the PlanningStatus enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_planning_status``.
        reservation_mode (str):
            The reservation mode which determines
            reservation-termination behavior and expected
            pricing. Check the ReservationMode enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_reservation_mode``.
        reservation_name (str):
            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.

            This field is a member of `oneof`_ ``_reservation_name``.
        scheduling_type (str):
            Maintenance information for this reservation
            Check the SchedulingType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_scheduling_type``.
        self_link (str):
            [Output Only] Server-defined fully-qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        share_settings (google.cloud.compute_v1beta.types.ShareSettings):
            List of Projects/Folders to share with.

            This field is a member of `oneof`_ ``_share_settings``.
        specific_reservation_required (bool):
            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.

            This field is a member of `oneof`_ ``_specific_reservation_required``.
        specific_sku_properties (google.cloud.compute_v1beta.types.FutureReservationSpecificSKUProperties):
            Future Reservation configuration to indicate
            instance properties and total count.

            This field is a member of `oneof`_ ``_specific_sku_properties``.
        status (google.cloud.compute_v1beta.types.FutureReservationStatus):
            [Output only] Status of the Future Reservation

            This field is a member of `oneof`_ ``_status``.
        time_window (google.cloud.compute_v1beta.types.FutureReservationTimeWindow):
            Time window for this Future Reservation.

            This field is a member of `oneof`_ ``_time_window``.
        zone (str):
            [Output Only] URL of the Zone where this future reservation
            resides.

            This field is a member of `oneof`_ ``_zone``.
    """

    class DeploymentType(proto.Enum):
        r"""Type of the deployment requested as part of future
        reservation.

        Values:
            UNDEFINED_DEPLOYMENT_TYPE (0):
                A value indicating that the enum field is not
                set.
            DENSE (64932607):
                The reserved capacity is made up of densely
                deployed reservation blocks.
            DEPLOYMENT_TYPE_UNSPECIFIED (234847180):
                No description available.
            FLEXIBLE (379880395):
                The reserved capacity is made up of highly
                flexible, logical reservation blocks.
        """
        UNDEFINED_DEPLOYMENT_TYPE = 0
        DENSE = 64932607
        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180
        FLEXIBLE = 379880395

    class PlanningStatus(proto.Enum):
        r"""Planning state before being submitted for evaluation

        Values:
            UNDEFINED_PLANNING_STATUS (0):
                A value indicating that the enum field is not
                set.
            DRAFT (65307009):
                Future Reservation is being drafted.
            PLANNING_STATUS_UNSPECIFIED (252728940):
                No description available.
            SUBMITTED (450918619):
                Future Reservation has been submitted for
                evaluation by GCP.
        """
        UNDEFINED_PLANNING_STATUS = 0
        DRAFT = 65307009
        PLANNING_STATUS_UNSPECIFIED = 252728940
        SUBMITTED = 450918619

    class ReservationMode(proto.Enum):
        r"""The reservation mode which determines reservation-termination
        behavior and expected pricing.

        Values:
            UNDEFINED_RESERVATION_MODE (0):
                A value indicating that the enum field is not
                set.
            CALENDAR (67431230):
                The delivered reservations will delivered at
                specified start time and terminated at specified
                end time along with terminating the VMs running
                on it.
            DEFAULT (115302945):
                The delivered reservations do not terminate
                VMs at the end of reservations. This is default
                mode.
            RESERVATION_MODE_UNSPECIFIED (233810606):
                No description available.
        """
        UNDEFINED_RESERVATION_MODE = 0
        CALENDAR = 67431230
        DEFAULT = 115302945
        RESERVATION_MODE_UNSPECIFIED = 233810606

    class SchedulingType(proto.Enum):
        r"""Maintenance information for this reservation

        Values:
            UNDEFINED_SCHEDULING_TYPE (0):
                A value indicating that the enum field is not
                set.
            GROUPED (474540862):
                Maintenance on all reserved instances in the
                reservation is synchronized.
            GROUP_MAINTENANCE_TYPE_UNSPECIFIED (447183678):
                Unknown maintenance type.
            INDEPENDENT (127011674):
                Maintenance is not synchronized for this
                reservation. Instead, each instance has its own
                maintenance window.
        """
        UNDEFINED_SCHEDULING_TYPE = 0
        GROUPED = 474540862
        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678
        INDEPENDENT = 127011674

    aggregate_reservation: "AllocationAggregateReservation" = proto.Field(
        proto.MESSAGE,
        number=291567948,
        optional=True,
        message="AllocationAggregateReservation",
    )
    auto_created_reservations_delete_time: str = proto.Field(
        proto.STRING,
        number=242855120,
        optional=True,
    )
    auto_created_reservations_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=496244741,
        optional=True,
        message="Duration",
    )
    auto_delete_auto_created_reservations: bool = proto.Field(
        proto.BOOL,
        number=491352490,
        optional=True,
    )
    commitment_info: "FutureReservationCommitmentInfo" = proto.Field(
        proto.MESSAGE,
        number=164362136,
        optional=True,
        message="FutureReservationCommitmentInfo",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deployment_type: str = proto.Field(
        proto.STRING,
        number=396722292,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    enable_emergent_maintenance: bool = proto.Field(
        proto.BOOL,
        number=353759497,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    name_prefix: str = proto.Field(
        proto.STRING,
        number=236409542,
        optional=True,
    )
    planning_status: str = proto.Field(
        proto.STRING,
        number=19714836,
        optional=True,
    )
    reservation_mode: str = proto.Field(
        proto.STRING,
        number=277294646,
        optional=True,
    )
    reservation_name: str = proto.Field(
        proto.STRING,
        number=277311262,
        optional=True,
    )
    scheduling_type: str = proto.Field(
        proto.STRING,
        number=199835397,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    share_settings: "ShareSettings" = proto.Field(
        proto.MESSAGE,
        number=266668163,
        optional=True,
        message="ShareSettings",
    )
    specific_reservation_required: bool = proto.Field(
        proto.BOOL,
        number=226550687,
        optional=True,
    )
    specific_sku_properties: "FutureReservationSpecificSKUProperties" = proto.Field(
        proto.MESSAGE,
        number=108887106,
        optional=True,
        message="FutureReservationSpecificSKUProperties",
    )
    status: "FutureReservationStatus" = proto.Field(
        proto.MESSAGE,
        number=181260274,
        optional=True,
        message="FutureReservationStatus",
    )
    time_window: "FutureReservationTimeWindow" = proto.Field(
        proto.MESSAGE,
        number=422983074,
        optional=True,
        message="FutureReservationTimeWindow",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class FutureReservationCommitmentInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        commitment_name (str):
            name of the commitment where capacity is
            being delivered to.

            This field is a member of `oneof`_ ``_commitment_name``.
        commitment_plan (str):
            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.
            Check the CommitmentPlan enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_commitment_plan``.
        previous_commitment_terms (str):
            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. Check the
            PreviousCommitmentTerms enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_previous_commitment_terms``.
    """

    class CommitmentPlan(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_COMMITMENT_PLAN (0):
                A value indicating that the enum field is not
                set.
            INVALID (530283991):
                No description available.
            THIRTY_SIX_MONTH (266295942):
                No description available.
            TWELVE_MONTH (173083962):
                No description available.
        """
        UNDEFINED_COMMITMENT_PLAN = 0
        INVALID = 530283991
        THIRTY_SIX_MONTH = 266295942
        TWELVE_MONTH = 173083962

    class PreviousCommitmentTerms(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_PREVIOUS_COMMITMENT_TERMS (0):
                A value indicating that the enum field is not
                set.
            EXTEND (448639770):
                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 (98482448):
                No changes to associated parents Committed
                Used Discount(s) terms.
        """
        UNDEFINED_PREVIOUS_COMMITMENT_TERMS = 0
        EXTEND = 448639770
        PREVIOUSCOMMITMENTTERM_UNSPECIFIED = 98482448

    commitment_name: str = proto.Field(
        proto.STRING,
        number=164498805,
        optional=True,
    )
    commitment_plan: str = proto.Field(
        proto.STRING,
        number=164568595,
        optional=True,
    )
    previous_commitment_terms: str = proto.Field(
        proto.STRING,
        number=447490085,
        optional=True,
    )


class FutureReservationSpecificSKUProperties(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_properties (google.cloud.compute_v1beta.types.AllocationSpecificSKUAllocationReservedInstanceProperties):
            Properties of the SKU instances being
            reserved.

            This field is a member of `oneof`_ ``_instance_properties``.
        source_instance_template (str):
            The instance template that will be used to
            populate the ReservedInstanceProperties of the
            future reservation

            This field is a member of `oneof`_ ``_source_instance_template``.
        total_count (int):
            Total number of instances for which capacity
            assurance is requested at a future time period.

            This field is a member of `oneof`_ ``_total_count``.
    """

    instance_properties: "AllocationSpecificSKUAllocationReservedInstanceProperties" = (
        proto.Field(
            proto.MESSAGE,
            number=215355165,
            optional=True,
            message="AllocationSpecificSKUAllocationReservedInstanceProperties",
        )
    )
    source_instance_template: str = proto.Field(
        proto.STRING,
        number=332423616,
        optional=True,
    )
    total_count: int = proto.Field(
        proto.INT64,
        number=129109076,
        optional=True,
    )


class FutureReservationStatus(proto.Message):
    r"""[Output only] Represents status related to the future reservation.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        amendment_status (str):
            [Output Only] The current status of the requested amendment.
            Check the AmendmentStatus enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_amendment_status``.
        auto_created_reservations (MutableSequence[str]):
            Fully qualified urls of the automatically created
            reservations at start_time.
        existing_matching_usage_info (google.cloud.compute_v1beta.types.FutureReservationStatusExistingMatchingUsageInfo):
            [Output Only] Represents the existing matching usage for the
            future reservation.

            This field is a member of `oneof`_ ``_existing_matching_usage_info``.
        fulfilled_count (int):
            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.

            This field is a member of `oneof`_ ``_fulfilled_count``.
        last_known_good_state (google.cloud.compute_v1beta.types.FutureReservationStatusLastKnownGoodState):
            [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.

            This field is a member of `oneof`_ ``_last_known_good_state``.
        lock_time (str):
            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.

            This field is a member of `oneof`_ ``_lock_time``.
        procurement_status (str):
            Current state of this Future Reservation
            Check the ProcurementStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_procurement_status``.
        specific_sku_properties (google.cloud.compute_v1beta.types.FutureReservationStatusSpecificSKUProperties):

            This field is a member of `oneof`_ ``_specific_sku_properties``.
    """

    class AmendmentStatus(proto.Enum):
        r"""[Output Only] The current status of the requested amendment.

        Values:
            UNDEFINED_AMENDMENT_STATUS (0):
                A value indicating that the enum field is not
                set.
            AMENDMENT_APPROVED (150573001):
                The requested amendment to the Future
                Resevation has been approved and applied by GCP.
            AMENDMENT_DECLINED (70395200):
                The requested amendment to the Future
                Reservation has been declined by GCP and the
                original state was restored.
            AMENDMENT_IN_REVIEW (25830624):
                The requested amendment to the Future
                Reservation is currently being reviewd by GCP.
            AMENDMENT_STATUS_UNSPECIFIED (412250332):
                No description available.
        """
        UNDEFINED_AMENDMENT_STATUS = 0
        AMENDMENT_APPROVED = 150573001
        AMENDMENT_DECLINED = 70395200
        AMENDMENT_IN_REVIEW = 25830624
        AMENDMENT_STATUS_UNSPECIFIED = 412250332

    class ProcurementStatus(proto.Enum):
        r"""Current state of this Future Reservation

        Values:
            UNDEFINED_PROCUREMENT_STATUS (0):
                A value indicating that the enum field is not
                set.
            APPROVED (357258935):
                Future reservation is approved by GCP.
            CANCELLED (41957681):
                Future reservation is cancelled by the
                customer.
            COMMITTED (221710172):
                Future reservation is committed by the
                customer.
            DECLINED (277081134):
                Future reservation is rejected by GCP.
            DRAFTING (477863585):
                Related status for PlanningStatus.Draft. Transitions to
                PENDING_APPROVAL upon user submitting FR.
            FAILED (455706685):
                Future reservation failed. No additional
                reservations were provided.
            FAILED_PARTIALLY_FULFILLED (14455212):
                Future reservation is partially fulfilled. Additional
                reservations were provided but did not reach total_count
                reserved instance slots.
            FULFILLED (409958655):
                Future reservation is fulfilled completely.
            PENDING_AMENDMENT_APPROVAL (510150429):
                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 (209692683):
                Future reservation is pending approval by
                GCP.
            PROCUREMENT_STATUS_UNSPECIFIED (45807705):
                No description available.
            PROCURING (95959663):
                Future reservation is being procured by GCP.
                Beyond this point, Future reservation is locked
                and no further modifications are allowed.
            PROVISIONING (290896621):
                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.
        """
        UNDEFINED_PROCUREMENT_STATUS = 0
        APPROVED = 357258935
        CANCELLED = 41957681
        COMMITTED = 221710172
        DECLINED = 277081134
        DRAFTING = 477863585
        FAILED = 455706685
        FAILED_PARTIALLY_FULFILLED = 14455212
        FULFILLED = 409958655
        PENDING_AMENDMENT_APPROVAL = 510150429
        PENDING_APPROVAL = 209692683
        PROCUREMENT_STATUS_UNSPECIFIED = 45807705
        PROCURING = 95959663
        PROVISIONING = 290896621

    amendment_status: str = proto.Field(
        proto.STRING,
        number=250270052,
        optional=True,
    )
    auto_created_reservations: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=140217006,
    )
    existing_matching_usage_info: "FutureReservationStatusExistingMatchingUsageInfo" = (
        proto.Field(
            proto.MESSAGE,
            number=509920602,
            optional=True,
            message="FutureReservationStatusExistingMatchingUsageInfo",
        )
    )
    fulfilled_count: int = proto.Field(
        proto.INT64,
        number=319392239,
        optional=True,
    )
    last_known_good_state: "FutureReservationStatusLastKnownGoodState" = proto.Field(
        proto.MESSAGE,
        number=192819092,
        optional=True,
        message="FutureReservationStatusLastKnownGoodState",
    )
    lock_time: str = proto.Field(
        proto.STRING,
        number=143772001,
        optional=True,
    )
    procurement_status: str = proto.Field(
        proto.STRING,
        number=224718945,
        optional=True,
    )
    specific_sku_properties: "FutureReservationStatusSpecificSKUProperties" = (
        proto.Field(
            proto.MESSAGE,
            number=108887106,
            optional=True,
            message="FutureReservationStatusSpecificSKUProperties",
        )
    )


class FutureReservationStatusExistingMatchingUsageInfo(proto.Message):
    r"""[Output Only] Represents the existing matching usage for the future
    reservation.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        count (int):
            Count to represent min(FR total_count,
            matching_reserved_capacity+matching_unreserved_instances)

            This field is a member of `oneof`_ ``_count``.
        timestamp (str):
            Timestamp when the matching usage was
            calculated

            This field is a member of `oneof`_ ``_timestamp``.
    """

    count: int = proto.Field(
        proto.INT64,
        number=94851343,
        optional=True,
    )
    timestamp: str = proto.Field(
        proto.STRING,
        number=55126294,
        optional=True,
    )


class FutureReservationStatusLastKnownGoodState(proto.Message):
    r"""The state that the future reservation will be reverted to
    should the amendment be declined.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            [Output Only] The description of the FutureReservation
            before an amendment was requested.

            This field is a member of `oneof`_ ``_description``.
        existing_matching_usage_info (google.cloud.compute_v1beta.types.FutureReservationStatusExistingMatchingUsageInfo):
            [Output Only] Represents the matching usage for the future
            reservation before an amendment was requested.

            This field is a member of `oneof`_ ``_existing_matching_usage_info``.
        future_reservation_specs (google.cloud.compute_v1beta.types.FutureReservationStatusLastKnownGoodStateFutureReservationSpecs):

            This field is a member of `oneof`_ ``_future_reservation_specs``.
        lock_time (str):
            [Output Only] The lock time of the FutureReservation before
            an amendment was requested.

            This field is a member of `oneof`_ ``_lock_time``.
        name_prefix (str):
            [Output Only] The name prefix of the Future Reservation
            before an amendment was requested.

            This field is a member of `oneof`_ ``_name_prefix``.
        procurement_status (str):
            [Output Only] The status of the last known good state for
            the Future Reservation. Check the ProcurementStatus enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_procurement_status``.
    """

    class ProcurementStatus(proto.Enum):
        r"""[Output Only] The status of the last known good state for the Future
        Reservation.

        Values:
            UNDEFINED_PROCUREMENT_STATUS (0):
                A value indicating that the enum field is not
                set.
            APPROVED (357258935):
                Future reservation is approved by GCP.
            CANCELLED (41957681):
                Future reservation is cancelled by the
                customer.
            COMMITTED (221710172):
                Future reservation is committed by the
                customer.
            DECLINED (277081134):
                Future reservation is rejected by GCP.
            DRAFTING (477863585):
                Related status for PlanningStatus.Draft. Transitions to
                PENDING_APPROVAL upon user submitting FR.
            FAILED (455706685):
                Future reservation failed. No additional
                reservations were provided.
            FAILED_PARTIALLY_FULFILLED (14455212):
                Future reservation is partially fulfilled. Additional
                reservations were provided but did not reach total_count
                reserved instance slots.
            FULFILLED (409958655):
                Future reservation is fulfilled completely.
            PENDING_AMENDMENT_APPROVAL (510150429):
                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 (209692683):
                Future reservation is pending approval by
                GCP.
            PROCUREMENT_STATUS_UNSPECIFIED (45807705):
                No description available.
            PROCURING (95959663):
                Future reservation is being procured by GCP.
                Beyond this point, Future reservation is locked
                and no further modifications are allowed.
            PROVISIONING (290896621):
                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.
        """
        UNDEFINED_PROCUREMENT_STATUS = 0
        APPROVED = 357258935
        CANCELLED = 41957681
        COMMITTED = 221710172
        DECLINED = 277081134
        DRAFTING = 477863585
        FAILED = 455706685
        FAILED_PARTIALLY_FULFILLED = 14455212
        FULFILLED = 409958655
        PENDING_AMENDMENT_APPROVAL = 510150429
        PENDING_APPROVAL = 209692683
        PROCUREMENT_STATUS_UNSPECIFIED = 45807705
        PROCURING = 95959663
        PROVISIONING = 290896621

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    existing_matching_usage_info: "FutureReservationStatusExistingMatchingUsageInfo" = (
        proto.Field(
            proto.MESSAGE,
            number=509920602,
            optional=True,
            message="FutureReservationStatusExistingMatchingUsageInfo",
        )
    )
    future_reservation_specs: "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs" = proto.Field(
        proto.MESSAGE,
        number=82528873,
        optional=True,
        message="FutureReservationStatusLastKnownGoodStateFutureReservationSpecs",
    )
    lock_time: str = proto.Field(
        proto.STRING,
        number=143772001,
        optional=True,
    )
    name_prefix: str = proto.Field(
        proto.STRING,
        number=236409542,
        optional=True,
    )
    procurement_status: str = proto.Field(
        proto.STRING,
        number=224718945,
        optional=True,
    )


class FutureReservationStatusLastKnownGoodStateFutureReservationSpecs(proto.Message):
    r"""The properties of the last known good state for the Future
    Reservation.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        share_settings (google.cloud.compute_v1beta.types.ShareSettings):
            [Output Only] The previous share settings of the Future
            Reservation.

            This field is a member of `oneof`_ ``_share_settings``.
        specific_sku_properties (google.cloud.compute_v1beta.types.FutureReservationSpecificSKUProperties):
            [Output Only] The previous instance related properties of
            the Future Reservation.

            This field is a member of `oneof`_ ``_specific_sku_properties``.
        time_window (google.cloud.compute_v1beta.types.FutureReservationTimeWindow):
            [Output Only] The previous time window of the Future
            Reservation.

            This field is a member of `oneof`_ ``_time_window``.
    """

    share_settings: "ShareSettings" = proto.Field(
        proto.MESSAGE,
        number=266668163,
        optional=True,
        message="ShareSettings",
    )
    specific_sku_properties: "FutureReservationSpecificSKUProperties" = proto.Field(
        proto.MESSAGE,
        number=108887106,
        optional=True,
        message="FutureReservationSpecificSKUProperties",
    )
    time_window: "FutureReservationTimeWindow" = proto.Field(
        proto.MESSAGE,
        number=422983074,
        optional=True,
        message="FutureReservationTimeWindow",
    )


class FutureReservationStatusSpecificSKUProperties(proto.Message):
    r"""Properties to be set for the Future Reservation.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        source_instance_template_id (str):
            ID of the instance template used to populate
            the Future Reservation properties.

            This field is a member of `oneof`_ ``_source_instance_template_id``.
    """

    source_instance_template_id: str = proto.Field(
        proto.STRING,
        number=111196154,
        optional=True,
    )


class FutureReservationTimeWindow(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        duration (google.cloud.compute_v1beta.types.Duration):

            This field is a member of `oneof`_ ``_duration``.
        end_time (str):

            This field is a member of `oneof`_ ``_end_time``.
        start_time (str):
            Start time of the Future Reservation. The start_time is an
            RFC3339 string.

            This field is a member of `oneof`_ ``_start_time``.
    """

    duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=155471252,
        optional=True,
        message="Duration",
    )
    end_time: str = proto.Field(
        proto.STRING,
        number=114938801,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class FutureReservationsAggregatedListResponse(proto.Message):
    r"""Contains a list of future reservations.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.FutureReservationsScopedList]):
            A list of Future reservation resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#futureReservationsAggregatedListResponse for future
            resevation aggregated list response.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "FutureReservationsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="FutureReservationsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FutureReservationsListResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.FutureReservation]):
            [Output Only] A list of future reservation resources.
        kind (str):
            [Output Only] Type of resource.Always
            compute#FutureReservationsListResponse for lists of
            reservations

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["FutureReservation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="FutureReservation",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FutureReservationsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        future_reservations (MutableSequence[google.cloud.compute_v1beta.types.FutureReservation]):
            A list of future reservations contained in
            this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of future reservations when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    future_reservations: MutableSequence["FutureReservation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=131778339,
        message="FutureReservation",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class FutureResourcesRecommendation(proto.Message):
    r"""Recommendation for single resources specification, to be
    created in the future.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        end_time (str):

            This field is a member of `oneof`_ ``_end_time``.
        location (str):
            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.

            This field is a member of `oneof`_ ``_location``.
        other_locations (MutableMapping[str, google.cloud.compute_v1beta.types.FutureResourcesRecommendationOtherLocation]):
            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.
        recommendation_id (str):
            Unique id of the recommendation, a UUID
            string generated by the API.

            This field is a member of `oneof`_ ``_recommendation_id``.
        recommendation_type (str):
            Type of recommendation. Currently only FUTURE_RESERVATION is
            supported. Check the RecommendationType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_recommendation_type``.
        start_time (str):

            This field is a member of `oneof`_ ``_start_time``.
    """

    class RecommendationType(proto.Enum):
        r"""Type of recommendation. Currently only FUTURE_RESERVATION is
        supported.

        Values:
            UNDEFINED_RECOMMENDATION_TYPE (0):
                A value indicating that the enum field is not
                set.
            FUTURE_RESERVATION (41036592):
                A Future Reservation is recommended.
            RECOMMENDATION_TYPE_UNSPECIFIED (140641624):
                Default value, unused.
        """
        UNDEFINED_RECOMMENDATION_TYPE = 0
        FUTURE_RESERVATION = 41036592
        RECOMMENDATION_TYPE_UNSPECIFIED = 140641624

    end_time: str = proto.Field(
        proto.STRING,
        number=114938801,
        optional=True,
    )
    location: str = proto.Field(
        proto.STRING,
        number=290430901,
        optional=True,
    )
    other_locations: MutableMapping[
        str, "FutureResourcesRecommendationOtherLocation"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=179322095,
        message="FutureResourcesRecommendationOtherLocation",
    )
    recommendation_id: str = proto.Field(
        proto.STRING,
        number=474540897,
        optional=True,
    )
    recommendation_type: str = proto.Field(
        proto.STRING,
        number=230749184,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class FutureResourcesRecommendationOtherLocation(proto.Message):
    r"""Information about recommendation status for locations that
    were allowed but not used by the response.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        details (str):
            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.

            This field is a member of `oneof`_ ``_details``.
        status (str):
            Status of recommendation in this location.
            Check the Status enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_status``.
    """

    class Status(proto.Enum):
        r"""Status of recommendation in this location.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CONDITIONS_NOT_MET (363628457):
                The requested resources are offered in this
                location but the requested time window is does
                not meet the required conditions.
            NOT_SUPPORTED (317950466):
                The requested resources are not offered in
                this location. Retrying the request will not
                change this status.
            NO_CAPACITY (274240888):
                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 (222662622):
                Default value, unused.
            RECOMMENDED (369652283):
                The requested resources are offered in this
                location and it is possible to request them.
                However, another location was better and was
                recommended.
        """
        UNDEFINED_STATUS = 0
        CONDITIONS_NOT_MET = 363628457
        NOT_SUPPORTED = 317950466
        NO_CAPACITY = 274240888
        OTHER_LOCATION_STATUS_UNDEFINED = 222662622
        RECOMMENDED = 369652283

    details: str = proto.Field(
        proto.STRING,
        number=483979842,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class FutureResourcesSpec(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        deployment_type (str):
            Indicates if the reservation allocation
            strategy is static (DENSE) or dynamic
            (STANDARD). Defaults to DENSE. Check the
            DeploymentType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_deployment_type``.
        location_policy (google.cloud.compute_v1beta.types.FutureResourcesSpecLocationPolicy):
            Optional location policy allowing to exclude
            some zone(s) in which the resources must not be
            created.

            This field is a member of `oneof`_ ``_location_policy``.
        target_resources (google.cloud.compute_v1beta.types.FutureResourcesSpecTargetResources):
            Specification of the reserved resources.

            This field is a member of `oneof`_ ``_target_resources``.
        time_range_spec (google.cloud.compute_v1beta.types.FlexibleTimeRange):
            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.

            This field is a member of `oneof`_ ``_time_range_spec``.
    """

    class DeploymentType(proto.Enum):
        r"""Indicates if the reservation allocation strategy is static
        (DENSE) or dynamic (STANDARD). Defaults to DENSE.

        Values:
            UNDEFINED_DEPLOYMENT_TYPE (0):
                A value indicating that the enum field is not
                set.
            DENSE (64932607):
                The reserved capacity is made up of densely
                deployed reservation blocks.
            DEPLOYMENT_TYPE_UNSPECIFIED (234847180):
                No description available.
            FLEXIBLE (379880395):
                The reserved capacity is made up of highly
                flexible, logical reservation blocks.
        """
        UNDEFINED_DEPLOYMENT_TYPE = 0
        DENSE = 64932607
        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180
        FLEXIBLE = 379880395

    deployment_type: str = proto.Field(
        proto.STRING,
        number=396722292,
        optional=True,
    )
    location_policy: "FutureResourcesSpecLocationPolicy" = proto.Field(
        proto.MESSAGE,
        number=465689852,
        optional=True,
        message="FutureResourcesSpecLocationPolicy",
    )
    target_resources: "FutureResourcesSpecTargetResources" = proto.Field(
        proto.MESSAGE,
        number=528230647,
        optional=True,
        message="FutureResourcesSpecTargetResources",
    )
    time_range_spec: "FlexibleTimeRange" = proto.Field(
        proto.MESSAGE,
        number=116516399,
        optional=True,
        message="FlexibleTimeRange",
    )


class FutureResourcesSpecAggregateResources(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerator_count (int):
            Size of the request, in accelerator (chip)
            count.

            This field is a member of `oneof`_ ``_accelerator_count``.
        vm_family (str):
            The VM family that all instances scheduled
            against this reservation must belong to. Use for
            TPU reservations. Check the VmFamily enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_vm_family``.
        workload_type (str):
            Workload type. Use for TPU reservations.
            Check the WorkloadType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_workload_type``.
    """

    class VmFamily(proto.Enum):
        r"""The VM family that all instances scheduled against this
        reservation must belong to. Use for TPU reservations.

        Values:
            UNDEFINED_VM_FAMILY (0):
                A value indicating that the enum field is not
                set.
            VM_FAMILY_CLOUD_TPU_DEVICE_CT3 (42845948):
                No description available.
            VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L (108020067):
                No description available.
            VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP (18705267):
                No description available.
            VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E (398926997):
                No description available.
            VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P (517384376):
                No description available.
            VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P (517384407):
                No description available.
            VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P (517384438):
                No description available.
        """
        UNDEFINED_VM_FAMILY = 0
        VM_FAMILY_CLOUD_TPU_DEVICE_CT3 = 42845948
        VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L = 108020067
        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP = 18705267
        VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E = 398926997
        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P = 517384376
        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P = 517384407
        VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P = 517384438

    class WorkloadType(proto.Enum):
        r"""Workload type. Use for TPU reservations.

        Values:
            UNDEFINED_WORKLOAD_TYPE (0):
                A value indicating that the enum field is not
                set.
            BATCH (62971674):
                Reserved resources will be optimized for
                BATCH workloads, such as ML training.
            SERVING (17781740):
                Reserved resources will be optimized for
                SERVING workloads, such as ML inference.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_WORKLOAD_TYPE = 0
        BATCH = 62971674
        SERVING = 17781740
        UNSPECIFIED = 526786327

    accelerator_count: int = proto.Field(
        proto.INT64,
        number=504879675,
        optional=True,
    )
    vm_family: str = proto.Field(
        proto.STRING,
        number=125017580,
        optional=True,
    )
    workload_type: str = proto.Field(
        proto.STRING,
        number=273432322,
        optional=True,
    )


class FutureResourcesSpecLocalSsdPartition(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_interface (str):
            Disk interface. Defaults to SCSI.
            Check the DiskInterface enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_disk_interface``.
        disk_size_gb (int):
            The size of the disk in GB.

            This field is a member of `oneof`_ ``_disk_size_gb``.
    """

    class DiskInterface(proto.Enum):
        r"""Disk interface. Defaults to SCSI.

        Values:
            UNDEFINED_DISK_INTERFACE (0):
                A value indicating that the enum field is not
                set.
            NVME (2408800):
                No description available.
            SCSI (2539686):
                No description available.
        """
        UNDEFINED_DISK_INTERFACE = 0
        NVME = 2408800
        SCSI = 2539686

    disk_interface: str = proto.Field(
        proto.STRING,
        number=66770199,
        optional=True,
    )
    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )


class FutureResourcesSpecLocationPolicy(proto.Message):
    r"""Specification of locations to create resources in.

    Attributes:
        locations (MutableMapping[str, google.cloud.compute_v1beta.types.FutureResourcesSpecLocationPolicyLocation]):
            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: MutableMapping[
        str, "FutureResourcesSpecLocationPolicyLocation"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=413423454,
        message="FutureResourcesSpecLocationPolicyLocation",
    )


class FutureResourcesSpecLocationPolicyLocation(proto.Message):
    r"""Preference for a single specified location.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        preference (str):
            Preference for this location.
            Check the Preference enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_preference``.
    """

    class Preference(proto.Enum):
        r"""Preference for this location.

        Values:
            UNDEFINED_PREFERENCE (0):
                A value indicating that the enum field is not
                set.
            ALLOW (62368553):
                Location is allowed for use.
            DENY (2094604):
                Location is prohibited.
            PREFERENCE_UNSPECIFIED (496219571):
                Default value, unused.
        """
        UNDEFINED_PREFERENCE = 0
        ALLOW = 62368553
        DENY = 2094604
        PREFERENCE_UNSPECIFIED = 496219571

    preference: str = proto.Field(
        proto.STRING,
        number=150781147,
        optional=True,
    )


class FutureResourcesSpecSpecificSKUResources(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_count (int):
            Size of the request, in instance count.

            This field is a member of `oneof`_ ``_instance_count``.
        local_ssd_partitions (MutableSequence[google.cloud.compute_v1beta.types.FutureResourcesSpecLocalSsdPartition]):
            Local SSD partitions. You do not have to
            include SSD partitions that are built in the
            machine type.
        machine_type (str):
            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.

            This field is a member of `oneof`_ ``_machine_type``.
    """

    instance_count: int = proto.Field(
        proto.INT64,
        number=77317349,
        optional=True,
    )
    local_ssd_partitions: MutableSequence[
        "FutureResourcesSpecLocalSsdPartition"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=470688568,
        message="FutureResourcesSpecLocalSsdPartition",
    )
    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
        optional=True,
    )


class FutureResourcesSpecTargetResources(proto.Message):
    r"""Specification of reserved resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        aggregate_resources (google.cloud.compute_v1beta.types.FutureResourcesSpecAggregateResources):

            This field is a member of `oneof`_ ``_aggregate_resources``.
        specific_sku_resources (google.cloud.compute_v1beta.types.FutureResourcesSpecSpecificSKUResources):

            This field is a member of `oneof`_ ``_specific_sku_resources``.
    """

    aggregate_resources: "FutureResourcesSpecAggregateResources" = proto.Field(
        proto.MESSAGE,
        number=180868005,
        optional=True,
        message="FutureResourcesSpecAggregateResources",
    )
    specific_sku_resources: "FutureResourcesSpecSpecificSKUResources" = proto.Field(
        proto.MESSAGE,
        number=267071798,
        optional=True,
        message="FutureResourcesSpecSpecificSKUResources",
    )


class GRPCHealthCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        grpc_service_name (str):
            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.

            This field is a member of `oneof`_ ``_grpc_service_name``.
        port (int):
            The TCP port number to which the health check
            prober sends packets. Valid values are 1 through
            65535.

            This field is a member of `oneof`_ ``_port``.
        port_name (str):
            Not supported.

            This field is a member of `oneof`_ ``_port_name``.
        port_specification (str):
            Specifies how a port is selected for health checking. Can be
            one of the following values: USE_FIXED_PORT: Specifies a
            port number explicitly using the port field in the health
            check. Supported by backend services for passthrough load
            balancers and backend services for proxy load balancers. Not
            supported by target pools. The health check supports all
            backends supported by the backend service provided the
            backend can be health checked. For example, GCE_VM_IP
            network endpoint groups, GCE_VM_IP_PORT network endpoint
            groups, and instance group backends. USE_NAMED_PORT: Not
            supported. USE_SERVING_PORT: Provides an indirect method of
            specifying the health check port by referring to the backend
            service. Only supported by backend services for proxy load
            balancers. Not supported by target pools. Not supported by
            backend services for passthrough load balancers. Supports
            all backends that can be health checked; for example,
            GCE_VM_IP_PORT network endpoint groups and instance group
            backends. For GCE_VM_IP_PORT network endpoint group
            backends, the health check uses the port number specified
            for each endpoint in the network endpoint group. For
            instance group backends, the health check uses the port
            number determined by looking up the backend service's named
            port in the instance group's list of named ports. Check the
            PortSpecification enum for the list of possible values.

            This field is a member of `oneof`_ ``_port_specification``.
    """

    class PortSpecification(proto.Enum):
        r"""Specifies how a port is selected for health checking. Can be one of
        the following values: USE_FIXED_PORT: Specifies a port number
        explicitly using the port field in the health check. Supported by
        backend services for passthrough load balancers and backend services
        for proxy load balancers. Not supported by target pools. The health
        check supports all backends supported by the backend service
        provided the backend can be health checked. For example, GCE_VM_IP
        network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and
        instance group backends. USE_NAMED_PORT: Not supported.
        USE_SERVING_PORT: Provides an indirect method of specifying the
        health check port by referring to the backend service. Only
        supported by backend services for proxy load balancers. Not
        supported by target pools. Not supported by backend services for
        passthrough load balancers. Supports all backends that can be health
        checked; for example, GCE_VM_IP_PORT network endpoint groups and
        instance group backends. For GCE_VM_IP_PORT network endpoint group
        backends, the health check uses the port number specified for each
        endpoint in the network endpoint group. For instance group backends,
        the health check uses the port number determined by looking up the
        backend service's named port in the instance group's list of named
        ports.

        Values:
            UNDEFINED_PORT_SPECIFICATION (0):
                A value indicating that the enum field is not
                set.
            USE_FIXED_PORT (190235748):
                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 (349300671):
                Not supported.
            USE_SERVING_PORT (362637516):
                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.
        """
        UNDEFINED_PORT_SPECIFICATION = 0
        USE_FIXED_PORT = 190235748
        USE_NAMED_PORT = 349300671
        USE_SERVING_PORT = 362637516

    grpc_service_name: str = proto.Field(
        proto.STRING,
        number=136533078,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )
    port_specification: str = proto.Field(
        proto.STRING,
        number=51590597,
        optional=True,
    )


class GRPCTLSHealthCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        grpc_service_name (str):
            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.

            This field is a member of `oneof`_ ``_grpc_service_name``.
        port (int):
            The TCP port number to which the health check
            prober sends packets. Valid values are 1 through
            65535.

            This field is a member of `oneof`_ ``_port``.
        port_specification (str):
            Specifies how a port is selected for health checking. Can be
            one of the following values: USE_FIXED_PORT: Specifies a
            port number explicitly using the port field in the health
            check. Supported by backend services for passthrough load
            balancers and backend services for proxy load balancers. Not
            supported by target pools. The health check supports all
            backends supported by the backend service provided the
            backend can be health checked. For example, GCE_VM_IP
            network endpoint groups, GCE_VM_IP_PORT network endpoint
            groups, and instance group backends. USE_NAMED_PORT: Not
            supported. USE_SERVING_PORT: Provides an indirect method of
            specifying the health check port by referring to the backend
            service. Only supported by backend services for proxy load
            balancers. Not supported by target pools. Not supported by
            backend services for passthrough load balancers. Supports
            all backends that can be health checked; for example,
            GCE_VM_IP_PORT network endpoint groups and instance group
            backends. For GCE_VM_IP_PORT network endpoint group
            backends, the health check uses the port number specified
            for each endpoint in the network endpoint group. For
            instance group backends, the health check uses the port
            number determined by looking up the backend service's named
            port in the instance group's list of named ports. Check the
            PortSpecification enum for the list of possible values.

            This field is a member of `oneof`_ ``_port_specification``.
    """

    class PortSpecification(proto.Enum):
        r"""Specifies how a port is selected for health checking. Can be one of
        the following values: USE_FIXED_PORT: Specifies a port number
        explicitly using the port field in the health check. Supported by
        backend services for passthrough load balancers and backend services
        for proxy load balancers. Not supported by target pools. The health
        check supports all backends supported by the backend service
        provided the backend can be health checked. For example, GCE_VM_IP
        network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and
        instance group backends. USE_NAMED_PORT: Not supported.
        USE_SERVING_PORT: Provides an indirect method of specifying the
        health check port by referring to the backend service. Only
        supported by backend services for proxy load balancers. Not
        supported by target pools. Not supported by backend services for
        passthrough load balancers. Supports all backends that can be health
        checked; for example, GCE_VM_IP_PORT network endpoint groups and
        instance group backends. For GCE_VM_IP_PORT network endpoint group
        backends, the health check uses the port number specified for each
        endpoint in the network endpoint group. For instance group backends,
        the health check uses the port number determined by looking up the
        backend service's named port in the instance group's list of named
        ports.

        Values:
            UNDEFINED_PORT_SPECIFICATION (0):
                A value indicating that the enum field is not
                set.
            USE_FIXED_PORT (190235748):
                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 (349300671):
                Not supported.
            USE_SERVING_PORT (362637516):
                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.
        """
        UNDEFINED_PORT_SPECIFICATION = 0
        USE_FIXED_PORT = 190235748
        USE_NAMED_PORT = 349300671
        USE_SERVING_PORT = 362637516

    grpc_service_name: str = proto.Field(
        proto.STRING,
        number=136533078,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_specification: str = proto.Field(
        proto.STRING,
        number=51590597,
        optional=True,
    )


class GetAcceleratorTypeRequest(proto.Message):
    r"""A request message for AcceleratorTypes.Get. See the method
    description for details.

    Attributes:
        accelerator_type (str):
            Name of the accelerator type to return.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    accelerator_type: str = proto.Field(
        proto.STRING,
        number=138031246,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetAddressRequest(proto.Message):
    r"""A request message for Addresses.Get. See the method
    description for details.

    Attributes:
        address (str):
            Name of the address resource to return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetAssociationFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.GetAssociation. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried rule belongs.
        name (str):
            The name of the association to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_name``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class GetAssociationNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.GetAssociation.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried association belongs.
        name (str):
            The name of the association to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_name``.
        project (str):
            Project ID for this request.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetAssociationOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for
    OrganizationSecurityPolicies.GetAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            The name of the association to get from the
            security policy.

            This field is a member of `oneof`_ ``_name``.
        security_policy (str):
            Name of the security policy to which the
            queried rule belongs.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class GetAssociationRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.GetAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried association belongs.
        name (str):
            The name of the association to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_name``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetAutoscalerRequest(proto.Message):
    r"""A request message for Autoscalers.Get. See the method
    description for details.

    Attributes:
        autoscaler (str):
            Name of the autoscaler to return.
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone for this request.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.Get. See the method
    description for details.

    Attributes:
        backend_bucket (str):
            Name of the BackendBucket resource to return.
        project (str):
            Project ID for this request.
    """

    backend_bucket: str = proto.Field(
        proto.STRING,
        number=91714037,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.Get. See the method
    description for details.

    Attributes:
        backend_service (str):
            Name of the BackendService resource to
            return.
        project (str):
            Project ID for this request.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetCrossSiteNetworkRequest(proto.Message):
    r"""A request message for CrossSiteNetworks.Get. See the method
    description for details.

    Attributes:
        cross_site_network (str):
            Name of the cross-site network to return.
        project (str):
            Project ID for this request.
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetDiagnosticsInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.GetDiagnostics. See the
    method description for details.

    Attributes:
        interconnect (str):
            Name of the interconnect resource to query.
        project (str):
            Project ID for this request.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetDiskRequest(proto.Message):
    r"""A request message for Disks.Get. See the method description
    for details.

    Attributes:
        disk (str):
            Name of the persistent disk to return.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetDiskSettingRequest(proto.Message):
    r"""A request message for DiskSettingsService.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetDiskTypeRequest(proto.Message):
    r"""A request message for DiskTypes.Get. See the method
    description for details.

    Attributes:
        disk_type (str):
            Name of the disk type to return.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    disk_type: str = proto.Field(
        proto.STRING,
        number=93009052,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetEffectiveFirewallsInstanceRequest(proto.Message):
    r"""A request message for Instances.GetEffectiveFirewalls. See
    the method description for details.

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        network_interface (str):
            The name of the network interface to get the
            effective firewalls.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    network_interface: str = proto.Field(
        proto.STRING,
        number=365387880,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetEffectiveFirewallsNetworkRequest(proto.Message):
    r"""A request message for Networks.GetEffectiveFirewalls. See the
    method description for details.

    Attributes:
        network (str):
            Name of the network for this request.
        project (str):
            Project ID for this request.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetEffectiveFirewallsRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.GetEffectiveFirewalls. See the
    method description for details.

    Attributes:
        network (str):
            Network reference
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetEffectiveSecurityPoliciesBackendServiceRequest(proto.Message):
    r"""A request message for
    BackendServices.GetEffectiveSecurityPolicies. See the method
    description for details.

    Attributes:
        backend_service (str):
            Name of the Backend Service for this request.
        project (str):
            Project ID for this request.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetExternalVpnGatewayRequest(proto.Message):
    r"""A request message for ExternalVpnGateways.Get. See the method
    description for details.

    Attributes:
        external_vpn_gateway (str):
            Name of the externalVpnGateway to return.
        project (str):
            Project ID for this request.
    """

    external_vpn_gateway: str = proto.Field(
        proto.STRING,
        number=109898629,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.Get. See the method
    description for details.

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to get.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )


class GetFirewallRequest(proto.Message):
    r"""A request message for Firewalls.Get. See the method
    description for details.

    Attributes:
        firewall (str):
            Name of the firewall rule to return.
        project (str):
            Project ID for this request.
    """

    firewall: str = proto.Field(
        proto.STRING,
        number=511016192,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetForwardingRuleRequest(proto.Message):
    r"""A request message for ForwardingRules.Get. See the method
    description for details.

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetFromFamilyImageRequest(proto.Message):
    r"""A request message for Images.GetFromFamily. See the method
    description for details.

    Attributes:
        family (str):
            Name of the image family to search for.
        project (str):
            The image project that the image belongs to.
            For example, to get a CentOS image, specify
            centos-cloud as the image project.
    """

    family: str = proto.Field(
        proto.STRING,
        number=328751972,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetFutureReservationRequest(proto.Message):
    r"""A request message for FutureReservations.Get. See the method
    description for details.

    Attributes:
        future_reservation (str):
            Name of the future reservation to retrieve.
            Name should conform to RFC1035.
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone for this request. Name
            should conform to RFC1035.
    """

    future_reservation: str = proto.Field(
        proto.STRING,
        number=56206160,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetGlobalAddressRequest(proto.Message):
    r"""A request message for GlobalAddresses.Get. See the method
    description for details.

    Attributes:
        address (str):
            Name of the address resource to return.
        project (str):
            Project ID for this request.
    """

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetGlobalForwardingRuleRequest(proto.Message):
    r"""A request message for GlobalForwardingRules.Get. See the
    method description for details.

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource to
            return.
        project (str):
            Project ID for this request.
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetGlobalNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for GlobalNetworkEndpointGroups.Get. See
    the method description for details.

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group. It
            should comply with RFC1035.
        project (str):
            Project ID for this request.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetGlobalOperationRequest(proto.Message):
    r"""A request message for GlobalOperations.Get. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to return, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetGlobalOrganizationOperationRequest(proto.Message):
    r"""A request message for GlobalOrganizationOperations.Get. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        operation (str):
            Name of the Operations resource to return, or
            its unique numeric identifier.
        parent_id (str):
            Parent ID for this request.

            This field is a member of `oneof`_ ``_parent_id``.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )


class GetGlobalPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for GlobalPublicDelegatedPrefixes.Get. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            Name of the PublicDelegatedPrefix resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )


class GetGuestAttributesInstanceRequest(proto.Message):
    r"""A request message for Instances.GetGuestAttributes. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        query_path (str):
            Specifies the guest attributes path to be
            queried.

            This field is a member of `oneof`_ ``_query_path``.
        variable_key (str):
            Specifies the key for the guest attributes
            entry.

            This field is a member of `oneof`_ ``_variable_key``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    query_path: str = proto.Field(
        proto.STRING,
        number=368591164,
        optional=True,
    )
    variable_key: str = proto.Field(
        proto.STRING,
        number=164364828,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetHealthBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.GetHealth. See the
    method description for details.

    Attributes:
        backend_service (str):
            Name of the BackendService resource to which
            the queried instance belongs.
        project (str):

        resource_group_reference_resource (google.cloud.compute_v1beta.types.ResourceGroupReference):
            The body resource for this request
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource_group_reference_resource: "ResourceGroupReference" = proto.Field(
        proto.MESSAGE,
        number=112951123,
        message="ResourceGroupReference",
    )


class GetHealthCheckRequest(proto.Message):
    r"""A request message for HealthChecks.Get. See the method
    description for details.

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to return.
        project (str):
            Project ID for this request.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetHealthRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.GetHealth. See
    the method description for details.

    Attributes:
        backend_service (str):
            Name of the BackendService resource for which
            to get health.
        project (str):

        region (str):
            Name of the region scoping this request.
        resource_group_reference_resource (google.cloud.compute_v1beta.types.ResourceGroupReference):
            The body resource for this request
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource_group_reference_resource: "ResourceGroupReference" = proto.Field(
        proto.MESSAGE,
        number=112951123,
        message="ResourceGroupReference",
    )


class GetHealthTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.GetHealth. See the method
    description for details.

    Attributes:
        instance_reference_resource (google.cloud.compute_v1beta.types.InstanceReference):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        target_pool (str):
            Name of the TargetPool resource to which the
            queried instance belongs.
    """

    instance_reference_resource: "InstanceReference" = proto.Field(
        proto.MESSAGE,
        number=292926060,
        message="InstanceReference",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )


class GetIamPolicyBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyDiskRequest(proto.Message):
    r"""A request message for Disks.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetIamPolicyFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyImageRequest(proto.Message):
    r"""A request message for Images.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyInstanceRequest(proto.Message):
    r"""A request message for Instances.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetIamPolicyInstanceTemplateRequest(proto.Message):
    r"""A request message for InstanceTemplates.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyInstantSnapshotRequest(proto.Message):
    r"""A request message for InstantSnapshots.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetIamPolicyInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for
    InterconnectAttachmentGroups.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.GetIamPolicy. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyLicenseRequest(proto.Message):
    r"""A request message for Licenses.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyMachineImageRequest(proto.Message):
    r"""A request message for MachineImages.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyNetworkAttachmentRequest(proto.Message):
    r"""A request message for NetworkAttachments.GetIamPolicy. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.GetIamPolicy.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetIamPolicyNodeTemplateRequest(proto.Message):
    r"""A request message for NodeTemplates.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.GetIamPolicy. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyRegionInstantSnapshotRequest(proto.Message):
    r"""A request message for RegionInstantSnapshots.GetIamPolicy.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyRegionSnapshotRequest(proto.Message):
    r"""A request message for RegionSnapshots.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyReservationRequest(proto.Message):
    r"""A request message for Reservations.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetIamPolicyResourcePolicyRequest(proto.Message):
    r"""A request message for ResourcePolicies.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyServiceAttachmentRequest(proto.Message):
    r"""A request message for ServiceAttachments.GetIamPolicy. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicySnapshotRequest(proto.Message):
    r"""A request message for Snapshots.GetIamPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetIamPolicyStoragePoolRequest(proto.Message):
    r"""A request message for StoragePools.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetIamPolicySubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.GetIamPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        options_requested_policy_version (int):
            Requested IAM Policy version.

            This field is a member of `oneof`_ ``_options_requested_policy_version``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    options_requested_policy_version: int = proto.Field(
        proto.INT32,
        number=499220029,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class GetImageFamilyViewRequest(proto.Message):
    r"""A request message for ImageFamilyViews.Get. See the method
    description for details.

    Attributes:
        family (str):
            Name of the image family to search for.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    family: str = proto.Field(
        proto.STRING,
        number=328751972,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetImageRequest(proto.Message):
    r"""A request message for Images.Get. See the method description
    for details.

    Attributes:
        image (str):
            Name of the image resource to return.
        project (str):
            Project ID for this request.
    """

    image: str = proto.Field(
        proto.STRING,
        number=100313435,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.Get. See the
    method description for details.

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for InstanceGroupManagerResizeRequests.Get.
    See the method description for details.

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. Name
            should conform to RFC1035 or be a resource ID.
        project (str):
            Project ID for this request.
        resize_request (str):
            The name of the resize request. Name should
            conform to RFC1035 or be a resource ID.
        zone (str):
            Name of the
            href="/compute/docs/regions-zones/#available">zone
            scoping this request. Name should conform to
            RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resize_request: str = proto.Field(
        proto.STRING,
        number=216941060,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetInstanceGroupRequest(proto.Message):
    r"""A request message for InstanceGroups.Get. See the method
    description for details.

    Attributes:
        instance_group (str):
            The name of the instance group.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone where the instance group
            is located.
    """

    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetInstanceRequest(proto.Message):
    r"""A request message for Instances.Get. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance resource to return.
        project (str):
            Project ID for this request.
        view (str):
            View of the instance.
            Check the View enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_view``.
        zone (str):
            The name of the zone for this request.
    """

    class View(proto.Enum):
        r"""View of the instance.

        Values:
            UNDEFINED_VIEW (0):
                A value indicating that the enum field is not
                set.
            BASIC (62970894):
                Include everything except Partner Metadata.
            FULL (2169487):
                Include everything.
            INSTANCE_VIEW_UNSPECIFIED (8444647):
                The default / unset value. The API will
                default to the BASIC view.
        """
        UNDEFINED_VIEW = 0
        BASIC = 62970894
        FULL = 2169487
        INSTANCE_VIEW_UNSPECIFIED = 8444647

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    view: str = proto.Field(
        proto.STRING,
        number=3619493,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetInstanceSettingRequest(proto.Message):
    r"""A request message for InstanceSettingsService.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetInstanceTemplateRequest(proto.Message):
    r"""A request message for InstanceTemplates.Get. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            The name of the instance template.
        project (str):
            Project ID for this request.
        view (str):
            View of the instance template.
            Check the View enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_view``.
    """

    class View(proto.Enum):
        r"""View of the instance template.

        Values:
            UNDEFINED_VIEW (0):
                A value indicating that the enum field is not
                set.
            BASIC (62970894):
                Include everything except Partner Metadata.
            FULL (2169487):
                Include everything.
            INSTANCE_VIEW_UNSPECIFIED (8444647):
                The default / unset value. The API will
                default to the BASIC view.
        """
        UNDEFINED_VIEW = 0
        BASIC = 62970894
        FULL = 2169487
        INSTANCE_VIEW_UNSPECIFIED = 8444647

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    view: str = proto.Field(
        proto.STRING,
        number=3619493,
        optional=True,
    )


class GetInstantSnapshotRequest(proto.Message):
    r"""A request message for InstantSnapshots.Get. See the method
    description for details.

    Attributes:
        instant_snapshot (str):
            Name of the InstantSnapshot resource to
            return.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    instant_snapshot: str = proto.Field(
        proto.STRING,
        number=391638626,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for InterconnectAttachmentGroups.Get. See
    the method description for details.

    Attributes:
        interconnect_attachment_group (str):
            Name of the InterconnectAttachmentGroup
            resource to return.
        project (str):
            Project ID for this request.
    """

    interconnect_attachment_group: str = proto.Field(
        proto.STRING,
        number=75905012,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetInterconnectAttachmentRequest(proto.Message):
    r"""A request message for InterconnectAttachments.Get. See the
    method description for details.

    Attributes:
        interconnect_attachment (str):
            Name of the interconnect attachment to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    interconnect_attachment: str = proto.Field(
        proto.STRING,
        number=308135284,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.Get. See the method
    description for details.

    Attributes:
        interconnect_group (str):
            Name of the InterconnectGroup resource to
            return.
        project (str):
            Project ID for this request.
    """

    interconnect_group: str = proto.Field(
        proto.STRING,
        number=388651918,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetInterconnectLocationRequest(proto.Message):
    r"""A request message for InterconnectLocations.Get. See the
    method description for details.

    Attributes:
        interconnect_location (str):
            Name of the interconnect location to return.
        project (str):
            Project ID for this request.
    """

    interconnect_location: str = proto.Field(
        proto.STRING,
        number=492235846,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetInterconnectRemoteLocationRequest(proto.Message):
    r"""A request message for InterconnectRemoteLocations.Get. See
    the method description for details.

    Attributes:
        interconnect_remote_location (str):
            Name of the interconnect remote location to
            return.
        project (str):
            Project ID for this request.
    """

    interconnect_remote_location: str = proto.Field(
        proto.STRING,
        number=290153949,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.Get. See the method
    description for details.

    Attributes:
        interconnect (str):
            Name of the interconnect to return.
        project (str):
            Project ID for this request.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetLicenseCodeRequest(proto.Message):
    r"""A request message for LicenseCodes.Get. See the method
    description for details.

    Attributes:
        license_code (str):
            Number corresponding to the License code
            resource to return.
        project (str):
            Project ID for this request.
    """

    license_code: str = proto.Field(
        proto.STRING,
        number=1467179,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetLicenseRequest(proto.Message):
    r"""A request message for Licenses.Get. See the method
    description for details.

    Attributes:
        license_ (str):
            Name of the License resource to return.
        project (str):
            Project ID for this request.
    """

    license_: str = proto.Field(
        proto.STRING,
        number=166757441,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetMachineImageRequest(proto.Message):
    r"""A request message for MachineImages.Get. See the method
    description for details.

    Attributes:
        machine_image (str):
            The name of the machine image.
        project (str):
            Project ID for this request.
    """

    machine_image: str = proto.Field(
        proto.STRING,
        number=69189475,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetMachineTypeRequest(proto.Message):
    r"""A request message for MachineTypes.Get. See the method
    description for details.

    Attributes:
        machine_type (str):
            Name of the machine type to return.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetMacsecConfigInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.GetMacsecConfig. See the
    method description for details.

    Attributes:
        interconnect (str):
            Name of the interconnect resource to query.
        project (str):
            Project ID for this request.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetNatIpInfoRouterRequest(proto.Message):
    r"""A request message for Routers.GetNatIpInfo. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        nat_name (str):
            Name of the nat service to filter the NAT IP
            information. If it is omitted, all nats for this
            router will be returned. Name should conform to
            RFC1035.

            This field is a member of `oneof`_ ``_nat_name``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        router (str):
            Name of the Router resource to query for Nat
            IP information. The name should conform to
            RFC1035.
    """

    nat_name: str = proto.Field(
        proto.STRING,
        number=425596649,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class GetNatMappingInfoRoutersRequest(proto.Message):
    r"""A request message for Routers.GetNatMappingInfo. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        nat_name (str):
            Name of the nat service to filter the Nat
            Mapping information. If it is omitted, all nats
            for this router will be returned. Name should
            conform to RFC1035.

            This field is a member of `oneof`_ ``_nat_name``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        router (str):
            Name of the Router resource to query for Nat
            Mapping information of VM endpoints.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    nat_name: str = proto.Field(
        proto.STRING,
        number=425596649,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class GetNetworkAttachmentRequest(proto.Message):
    r"""A request message for NetworkAttachments.Get. See the method
    description for details.

    Attributes:
        network_attachment (str):
            Name of the NetworkAttachment resource to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
    """

    network_attachment: str = proto.Field(
        proto.STRING,
        number=224644052,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetNetworkEdgeSecurityServiceRequest(proto.Message):
    r"""A request message for NetworkEdgeSecurityServices.Get. See
    the method description for details.

    Attributes:
        network_edge_security_service (str):
            Name of the network edge security service to
            get.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    network_edge_security_service: str = proto.Field(
        proto.STRING,
        number=157011879,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for NetworkEndpointGroups.Get. See the
    method description for details.

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group. It
            should comply with RFC1035.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone where the network
            endpoint group is located. It should comply with
            RFC1035.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.Get. See the
    method description for details.

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to get.
        project (str):
            Project ID for this request.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetNetworkProfileRequest(proto.Message):
    r"""A request message for NetworkProfiles.Get. See the method
    description for details.

    Attributes:
        network_profile (str):
            Name of the network profile to return.
        project (str):
            Project ID for this request.
    """

    network_profile: str = proto.Field(
        proto.STRING,
        number=173112472,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetNetworkRequest(proto.Message):
    r"""A request message for Networks.Get. See the method
    description for details.

    Attributes:
        network (str):
            Name of the network to return.
        project (str):
            Project ID for this request.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.Get. See the method
    description for details.

    Attributes:
        node_group (str):
            Name of the node group to return.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetNodeTemplateRequest(proto.Message):
    r"""A request message for NodeTemplates.Get. See the method
    description for details.

    Attributes:
        node_template (str):
            Name of the node template to return.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
    """

    node_template: str = proto.Field(
        proto.STRING,
        number=323154455,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetNodeTypeRequest(proto.Message):
    r"""A request message for NodeTypes.Get. See the method
    description for details.

    Attributes:
        node_type (str):
            Name of the node type to return.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    node_type: str = proto.Field(
        proto.STRING,
        number=465832791,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetOperationalStatusInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for
    InterconnectAttachmentGroups.GetOperationalStatus. See the
    method description for details.

    Attributes:
        interconnect_attachment_group (str):
            Name of the interconnectAttachmentGroup
            resource to query.
        project (str):
            Project ID for this request.
    """

    interconnect_attachment_group: str = proto.Field(
        proto.STRING,
        number=75905012,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetOperationalStatusInterconnectGroupRequest(proto.Message):
    r"""A request message for
    InterconnectGroups.GetOperationalStatus. See the method
    description for details.

    Attributes:
        interconnect_group (str):
            Name of the interconnectGroup resource to
            query.
        project (str):
            Project ID for this request.
    """

    interconnect_group: str = proto.Field(
        proto.STRING,
        number=388651918,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.Get. See
    the method description for details.

    Attributes:
        security_policy (str):
            Name of the security policy to get.
    """

    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class GetPacketMirroringRequest(proto.Message):
    r"""A request message for PacketMirrorings.Get. See the method
    description for details.

    Attributes:
        packet_mirroring (str):
            Name of the PacketMirroring resource to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    packet_mirroring: str = proto.Field(
        proto.STRING,
        number=22305996,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetPacketMirroringRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for
    FirewallPolicies.GetPacketMirroringRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried rule belongs.
        priority (int):
            The priority of the rule to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )


class GetPacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    NetworkFirewallPolicies.GetPacketMirroringRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried rule belongs.
        priority (int):
            The priority of the rule to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetPartnerMetadataInstanceRequest(proto.Message):
    r"""A request message for Instances.GetPartnerMetadata. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        namespaces (str):
            Comma separated partner metadata namespaces.

            This field is a member of `oneof`_ ``_namespaces``.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    namespaces: str = proto.Field(
        proto.STRING,
        number=164058744,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetPreviewFeatureRequest(proto.Message):
    r"""A request message for PreviewFeatures.Get. See the method
    description for details.

    Attributes:
        preview_feature (str):
            Name of the PreviewFeature for this request.
        project (str):
            Project ID for this request.
    """

    preview_feature: str = proto.Field(
        proto.STRING,
        number=454999423,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetProjectRequest(proto.Message):
    r"""A request message for Projects.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetPublicAdvertisedPrefixeRequest(proto.Message):
    r"""A request message for PublicAdvertisedPrefixes.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        public_advertised_prefix (str):
            Name of the PublicAdvertisedPrefix resource
            to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_advertised_prefix: str = proto.Field(
        proto.STRING,
        number=101874590,
    )


class GetPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            Name of the PublicDelegatedPrefix resource to
            return.
        region (str):
            Name of the region of this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionAutoscalerRequest(proto.Message):
    r"""A request message for RegionAutoscalers.Get. See the method
    description for details.

    Attributes:
        autoscaler (str):
            Name of the autoscaler to return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.Get. See the
    method description for details.

    Attributes:
        backend_service (str):
            Name of the BackendService resource to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionCommitmentRequest(proto.Message):
    r"""A request message for RegionCommitments.Get. See the method
    description for details.

    Attributes:
        commitment (str):
            Name of the commitment to return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    commitment: str = proto.Field(
        proto.STRING,
        number=482134805,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.Get. See the method
    description for details.

    Attributes:
        disk (str):
            Name of the regional persistent disk to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionDiskSettingRequest(proto.Message):
    r"""A request message for RegionDiskSettings.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionDiskTypeRequest(proto.Message):
    r"""A request message for RegionDiskTypes.Get. See the method
    description for details.

    Attributes:
        disk_type (str):
            Name of the disk type to return.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
    """

    disk_type: str = proto.Field(
        proto.STRING,
        number=93009052,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionHealthCheckRequest(proto.Message):
    r"""A request message for RegionHealthChecks.Get. See the method
    description for details.

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionHealthCheckServiceRequest(proto.Message):
    r"""A request message for RegionHealthCheckServices.Get. See the
    method description for details.

    Attributes:
        health_check_service (str):
            Name of the HealthCheckService to update. The
            name must be 1-63 characters long, and comply
            with RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    health_check_service: str = proto.Field(
        proto.STRING,
        number=408374747,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.Get. See
    the method description for details.

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group to return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagerResizeRequests.Get. See the method
    description for details.

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. Name
            should conform to RFC1035 or be a resource ID.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region scoping this request.
            Name should conform to RFC1035.
        resize_request (str):
            The name of the resize request. Name should
            conform to RFC1035 or be a resource ID.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resize_request: str = proto.Field(
        proto.STRING,
        number=216941060,
    )


class GetRegionInstanceGroupRequest(proto.Message):
    r"""A request message for RegionInstanceGroups.Get. See the
    method description for details.

    Attributes:
        instance_group (str):
            Name of the instance group resource to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionInstanceTemplateRequest(proto.Message):
    r"""A request message for RegionInstanceTemplates.Get. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            The name of the instance template.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        view (str):
            View of the instance template.
            Check the View enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_view``.
    """

    class View(proto.Enum):
        r"""View of the instance template.

        Values:
            UNDEFINED_VIEW (0):
                A value indicating that the enum field is not
                set.
            BASIC (62970894):
                Include everything except Partner Metadata.
            FULL (2169487):
                Include everything.
            INSTANCE_VIEW_UNSPECIFIED (8444647):
                The default / unset value. The API will
                default to the BASIC view.
        """
        UNDEFINED_VIEW = 0
        BASIC = 62970894
        FULL = 2169487
        INSTANCE_VIEW_UNSPECIFIED = 8444647

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    view: str = proto.Field(
        proto.STRING,
        number=3619493,
        optional=True,
    )


class GetRegionInstantSnapshotRequest(proto.Message):
    r"""A request message for RegionInstantSnapshots.Get. See the
    method description for details.

    Attributes:
        instant_snapshot (str):
            Name of the InstantSnapshot resource to
            return.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
    """

    instant_snapshot: str = proto.Field(
        proto.STRING,
        number=391638626,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionMultiMigRequest(proto.Message):
    r"""A request message for RegionMultiMigs.Get. See the method
    description for details.

    Attributes:
        multi_mig (str):
            Name of the multi-MIG resource to return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    multi_mig: str = proto.Field(
        proto.STRING,
        number=403990085,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for RegionNetworkEndpointGroups.Get. See
    the method description for details.

    Attributes:
        network_endpoint_group (str):
            The name of the network endpoint group. It
            should comply with RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where the network
            endpoint group is located. It should comply with
            RFC1035.
    """

    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for RegionNetworkFirewallPolicies.Get. See
    the method description for details.

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to get.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionNotificationEndpointRequest(proto.Message):
    r"""A request message for RegionNotificationEndpoints.Get. See
    the method description for details.

    Attributes:
        notification_endpoint (str):
            Name of the NotificationEndpoint resource to
            return.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    notification_endpoint: str = proto.Field(
        proto.STRING,
        number=376807017,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionOperationRequest(proto.Message):
    r"""A request message for RegionOperations.Get. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to return, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionRequest(proto.Message):
    r"""A request message for Regions.Get. See the method description
    for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        security_policy (str):
            Name of the security policy to get.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class GetRegionSnapshotRequest(proto.Message):
    r"""A request message for RegionSnapshots.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        snapshot (str):
            Name of the Snapshot resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    snapshot: str = proto.Field(
        proto.STRING,
        number=284874180,
    )


class GetRegionSnapshotSettingRequest(proto.Message):
    r"""A request message for RegionSnapshotSettings.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRegionSslCertificateRequest(proto.Message):
    r"""A request message for RegionSslCertificates.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        ssl_certificate (str):
            Name of the SslCertificate resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    ssl_certificate: str = proto.Field(
        proto.STRING,
        number=46443492,
    )


class GetRegionSslPolicyRequest(proto.Message):
    r"""A request message for RegionSslPolicies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        ssl_policy (str):
            Name of the SSL policy to update. The name
            must be 1-63 characters long, and comply with
            RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
    )


class GetRegionTargetHttpProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpProxies.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        target_http_proxy (str):
            Name of the TargetHttpProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    target_http_proxy: str = proto.Field(
        proto.STRING,
        number=206872421,
    )


class GetRegionTargetHttpsProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpsProxies.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class GetRegionTargetTcpProxyRequest(proto.Message):
    r"""A request message for RegionTargetTcpProxies.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        target_tcp_proxy (str):
            Name of the TargetTcpProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    target_tcp_proxy: str = proto.Field(
        proto.STRING,
        number=503065442,
    )


class GetRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        url_map (str):
            Name of the UrlMap resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )


class GetReservationBlockRequest(proto.Message):
    r"""A request message for ReservationBlocks.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        reservation (str):
            The name of the reservation. Name should
            conform to RFC1035 or be a resource ID.
        reservation_block (str):
            The name of the reservation block. Name
            should conform to RFC1035 or be a resource ID.
        zone (str):
            Name of the zone for this request. Zone name
            should conform to RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    reservation_block: str = proto.Field(
        proto.STRING,
        number=532832858,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetReservationRequest(proto.Message):
    r"""A request message for Reservations.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        reservation (str):
            Name of the reservation to retrieve.
        zone (str):
            Name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetResourcePolicyRequest(proto.Message):
    r"""A request message for ResourcePolicies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        resource_policy (str):
            Name of the resource policy to retrieve.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource_policy: str = proto.Field(
        proto.STRING,
        number=159240835,
    )


class GetRoutePolicyRouterRequest(proto.Message):
    r"""A request message for Routers.GetRoutePolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        policy (str):
            The Policy name for this request. Name must
            conform to RFC1035

            This field is a member of `oneof`_ ``_policy``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        router (str):
            Name of the Router resource to query for the
            route policy. The name should conform to
            RFC1035.
    """

    policy: str = proto.Field(
        proto.STRING,
        number=91071794,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class GetRouteRequest(proto.Message):
    r"""A request message for Routes.Get. See the method description
    for details.

    Attributes:
        project (str):
            Project ID for this request.
        route (str):
            Name of the Route resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    route: str = proto.Field(
        proto.STRING,
        number=108704329,
    )


class GetRouterRequest(proto.Message):
    r"""A request message for Routers.Get. See the method description
    for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        router (str):
            Name of the Router resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class GetRouterStatusRouterRequest(proto.Message):
    r"""A request message for Routers.GetRouterStatus. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        router (str):
            Name of the Router resource to query.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class GetRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.GetRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried rule belongs.
        priority (int):
            The priority of the rule to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )


class GetRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.GetRule. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried rule belongs.
        priority (int):
            The priority of the rule to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetRuleOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.GetRule.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to get from the
            security policy.

            This field is a member of `oneof`_ ``_priority``.
        security_policy (str):
            Name of the security policy to which the
            queried rule belongs.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class GetRuleRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for RegionNetworkFirewallPolicies.GetRule.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to which the
            queried rule belongs.
        priority (int):
            The priority of the rule to get from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class GetRuleRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.GetRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to get from the
            security policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        security_policy (str):
            Name of the security policy to which the
            queried rule belongs.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class GetRuleSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.GetRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to get from the
            security policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        security_policy (str):
            Name of the security policy to which the
            queried rule belongs.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class GetScreenshotInstanceRequest(proto.Message):
    r"""A request message for Instances.GetScreenshot. See the method
    description for details.

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        security_policy (str):
            Name of the security policy to get.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class GetSerialPortOutputInstanceRequest(proto.Message):
    r"""A request message for Instances.GetSerialPortOutput. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance for this request.
        port (int):
            Specifies which COM or serial port to
            retrieve data from.

            This field is a member of `oneof`_ ``_port``.
        project (str):
            Project ID for this request.
        start (int):
            Specifies the starting byte position of the output to
            return. To start with the first byte of output to the
            specified port, omit this field or set it to ``0``. If the
            output for that byte position is available, this field
            matches the ``start`` parameter sent with the request. If
            the amount of serial console output exceeds the size of the
            buffer (1 MB), the oldest output is discarded and is no
            longer available. If the requested start position refers to
            discarded output, the start position is adjusted to the
            oldest output still available, and the adjusted start
            position is returned as the ``start`` property value. You
            can also provide a negative start position, which translates
            to the most recent number of bytes written to the serial
            port. For example, -3 is interpreted as the most recent 3
            bytes written to the serial console. Note that the negative
            start is bounded by the retained buffer size, and the
            returned serial console output will not exceed the max
            buffer size.

            This field is a member of `oneof`_ ``_start``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    start: int = proto.Field(
        proto.INT64,
        number=109757538,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetServiceAttachmentRequest(proto.Message):
    r"""A request message for ServiceAttachments.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        service_attachment (str):
            Name of the ServiceAttachment resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    service_attachment: str = proto.Field(
        proto.STRING,
        number=338957549,
    )


class GetShieldedInstanceIdentityInstanceRequest(proto.Message):
    r"""A request message for Instances.GetShieldedInstanceIdentity.
    See the method description for details.

    Attributes:
        instance (str):
            Name or id of the instance scoping this
            request.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetShieldedVmIdentityInstanceRequest(proto.Message):
    r"""A request message for Instances.GetShieldedVmIdentity. See
    the method description for details.

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetSnapshotRequest(proto.Message):
    r"""A request message for Snapshots.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        snapshot (str):
            Name of the Snapshot resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    snapshot: str = proto.Field(
        proto.STRING,
        number=284874180,
    )


class GetSnapshotSettingRequest(proto.Message):
    r"""A request message for SnapshotSettingsService.Get. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetSslCertificateRequest(proto.Message):
    r"""A request message for SslCertificates.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        ssl_certificate (str):
            Name of the SslCertificate resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    ssl_certificate: str = proto.Field(
        proto.STRING,
        number=46443492,
    )


class GetSslPolicyRequest(proto.Message):
    r"""A request message for SslPolicies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        ssl_policy (str):
            Name of the SSL policy to update. The name
            must be 1-63 characters long, and comply with
            RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
    )


class GetStatusVpnGatewayRequest(proto.Message):
    r"""A request message for VpnGateways.GetStatus. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        vpn_gateway (str):
            Name of the VPN gateway to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    vpn_gateway: str = proto.Field(
        proto.STRING,
        number=406684153,
    )


class GetStoragePoolRequest(proto.Message):
    r"""A request message for StoragePools.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        storage_pool (str):
            Name of the storage pool to return.
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    storage_pool: str = proto.Field(
        proto.STRING,
        number=360473440,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetStoragePoolTypeRequest(proto.Message):
    r"""A request message for StoragePoolTypes.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        storage_pool_type (str):
            Name of the storage pool type to return.
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    storage_pool_type: str = proto.Field(
        proto.STRING,
        number=285999289,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetSubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        subnetwork (str):
            Name of the Subnetwork resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
    )


class GetTargetGrpcProxyRequest(proto.Message):
    r"""A request message for TargetGrpcProxies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        target_grpc_proxy (str):
            Name of the TargetGrpcProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    target_grpc_proxy: str = proto.Field(
        proto.STRING,
        number=5020283,
    )


class GetTargetHttpProxyRequest(proto.Message):
    r"""A request message for TargetHttpProxies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        target_http_proxy (str):
            Name of the TargetHttpProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    target_http_proxy: str = proto.Field(
        proto.STRING,
        number=206872421,
    )


class GetTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class GetTargetInstanceRequest(proto.Message):
    r"""A request message for TargetInstances.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        target_instance (str):
            Name of the TargetInstance resource to
            return.
        zone (str):
            Name of the zone scoping this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    target_instance: str = proto.Field(
        proto.STRING,
        number=289769347,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        target_pool (str):
            Name of the TargetPool resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )


class GetTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        target_ssl_proxy (str):
            Name of the TargetSslProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    target_ssl_proxy: str = proto.Field(
        proto.STRING,
        number=338795853,
    )


class GetTargetTcpProxyRequest(proto.Message):
    r"""A request message for TargetTcpProxies.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        target_tcp_proxy (str):
            Name of the TargetTcpProxy resource to
            return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    target_tcp_proxy: str = proto.Field(
        proto.STRING,
        number=503065442,
    )


class GetTargetVpnGatewayRequest(proto.Message):
    r"""A request message for TargetVpnGateways.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        target_vpn_gateway (str):
            Name of the target VPN gateway to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    target_vpn_gateway: str = proto.Field(
        proto.STRING,
        number=532512843,
    )


class GetUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.Get. See the method description
    for details.

    Attributes:
        project (str):
            Project ID for this request.
        url_map (str):
            Name of the UrlMap resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )


class GetVpnGatewayRequest(proto.Message):
    r"""A request message for VpnGateways.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        vpn_gateway (str):
            Name of the VPN gateway to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    vpn_gateway: str = proto.Field(
        proto.STRING,
        number=406684153,
    )


class GetVpnTunnelRequest(proto.Message):
    r"""A request message for VpnTunnels.Get. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        vpn_tunnel (str):
            Name of the VpnTunnel resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    vpn_tunnel: str = proto.Field(
        proto.STRING,
        number=143821331,
    )


class GetWireGroupRequest(proto.Message):
    r"""A request message for WireGroups.Get. See the method
    description for details.

    Attributes:
        cross_site_network (str):

        project (str):
            Project ID for this request.
        wire_group (str):
            Name of the wire group resource to return.
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    wire_group: str = proto.Field(
        proto.STRING,
        number=122540613,
    )


class GetXpnHostProjectRequest(proto.Message):
    r"""A request message for Projects.GetXpnHost. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class GetXpnResourcesProjectsRequest(proto.Message):
    r"""A request message for Projects.GetXpnResources. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class GetZoneOperationRequest(proto.Message):
    r"""A request message for ZoneOperations.Get. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to return, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GetZoneRequest(proto.Message):
    r"""A request message for Zones.Get. See the method description
    for details.

    Attributes:
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone resource to return.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class GlobalAddressesMoveRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            An optional destination address description
            if intended to be different from the source.

            This field is a member of `oneof`_ ``_description``.
        destination_address (str):
            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.

            This field is a member of `oneof`_ ``_destination_address``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    destination_address: str = proto.Field(
        proto.STRING,
        number=371693763,
        optional=True,
    )


class GlobalNetworkEndpointGroupsAttachEndpointsRequest(proto.Message):
    r"""

    Attributes:
        network_endpoints (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpoint]):
            The list of network endpoints to be attached.
    """

    network_endpoints: MutableSequence["NetworkEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=149850285,
        message="NetworkEndpoint",
    )


class GlobalNetworkEndpointGroupsDetachEndpointsRequest(proto.Message):
    r"""

    Attributes:
        network_endpoints (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpoint]):
            The list of network endpoints to be detached.
    """

    network_endpoints: MutableSequence["NetworkEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=149850285,
        message="NetworkEndpoint",
    )


class GlobalOrganizationSetPolicyRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bindings (MutableSequence[google.cloud.compute_v1beta.types.Binding]):
            Flatten Policy to create a backward
            compatible wire-format. Deprecated. Use 'policy'
            to specify bindings.
        etag (str):
            Flatten Policy to create a backward
            compatible wire-format. Deprecated. Use 'policy'
            to specify the etag.

            This field is a member of `oneof`_ ``_etag``.
        policy (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_policy``.
    """

    bindings: MutableSequence["Binding"] = proto.RepeatedField(
        proto.MESSAGE,
        number=403251854,
        message="Binding",
    )
    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    policy: "Policy" = proto.Field(
        proto.MESSAGE,
        number=91071794,
        optional=True,
        message="Policy",
    )


class GlobalSetLabelsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        label_fingerprint (str):
            The fingerprint of the previous set of labels
            for this resource, used to detect conflicts. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash when updating or
            changing labels, otherwise the request will fail
            with error 412 conditionNotMet. Make a get()
            request to the resource to get the latest
            fingerprint.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            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": "").
    """

    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )


class GlobalSetPolicyRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bindings (MutableSequence[google.cloud.compute_v1beta.types.Binding]):
            Flatten Policy to create a backward
            compatible wire-format. Deprecated. Use 'policy'
            to specify bindings.
        etag (str):
            Flatten Policy to create a backward
            compatible wire-format. Deprecated. Use 'policy'
            to specify the etag.

            This field is a member of `oneof`_ ``_etag``.
        policy (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_policy``.
    """

    bindings: MutableSequence["Binding"] = proto.RepeatedField(
        proto.MESSAGE,
        number=403251854,
        message="Binding",
    )
    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    policy: "Policy" = proto.Field(
        proto.MESSAGE,
        number=91071794,
        optional=True,
        message="Policy",
    )


class GroupMaintenanceInfo(proto.Message):
    r"""Maintenance Info for ReservationBlocks.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        maintenance_ongoing_count (int):
            Progress for ongoing maintenance for this
            group of VMs/hosts. Describes number of hosts in
            the block that have ongoing maintenance.

            This field is a member of `oneof`_ ``_maintenance_ongoing_count``.
        maintenance_pending_count (int):
            Progress for ongoing maintenance for this
            group of VMs/hosts. Describes number of hosts in
            the block that have pending maintenance.

            This field is a member of `oneof`_ ``_maintenance_pending_count``.
        scheduling_type (str):
            The type of maintenance for the reservation.
            Check the SchedulingType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_scheduling_type``.
        upcoming_group_maintenance (google.cloud.compute_v1beta.types.UpcomingMaintenance):
            Maintenance information on this group of VMs.

            This field is a member of `oneof`_ ``_upcoming_group_maintenance``.
    """

    class SchedulingType(proto.Enum):
        r"""The type of maintenance for the reservation.

        Values:
            UNDEFINED_SCHEDULING_TYPE (0):
                A value indicating that the enum field is not
                set.
            GROUPED (474540862):
                Maintenance on all reserved instances in the
                reservation is synchronized.
            GROUP_MAINTENANCE_TYPE_UNSPECIFIED (447183678):
                Unknown maintenance type.
            INDEPENDENT (127011674):
                Maintenance is not synchronized for this
                reservation. Instead, each instance has its own
                maintenance window.
        """
        UNDEFINED_SCHEDULING_TYPE = 0
        GROUPED = 474540862
        GROUP_MAINTENANCE_TYPE_UNSPECIFIED = 447183678
        INDEPENDENT = 127011674

    maintenance_ongoing_count: int = proto.Field(
        proto.INT32,
        number=219781919,
        optional=True,
    )
    maintenance_pending_count: int = proto.Field(
        proto.INT32,
        number=158783547,
        optional=True,
    )
    scheduling_type: str = proto.Field(
        proto.STRING,
        number=199835397,
        optional=True,
    )
    upcoming_group_maintenance: "UpcomingMaintenance" = proto.Field(
        proto.MESSAGE,
        number=393438448,
        optional=True,
        message="UpcomingMaintenance",
    )


class GuestAttributes(proto.Message):
    r"""A guest attributes entry.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        kind (str):
            [Output Only] Type of the resource. Always
            compute#guestAttributes for guest attributes entry.

            This field is a member of `oneof`_ ``_kind``.
        query_path (str):
            The path to be queried. This can be the
            default namespace ('') or a nested namespace
            ('\/') or a specified key ('\/\').

            This field is a member of `oneof`_ ``_query_path``.
        query_value (google.cloud.compute_v1beta.types.GuestAttributesValue):
            [Output Only] The value of the requested queried path.

            This field is a member of `oneof`_ ``_query_value``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        variable_key (str):
            The key to search for.

            This field is a member of `oneof`_ ``_variable_key``.
        variable_value (str):
            [Output Only] The value found for the requested key.

            This field is a member of `oneof`_ ``_variable_value``.
    """

    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    query_path: str = proto.Field(
        proto.STRING,
        number=368591164,
        optional=True,
    )
    query_value: "GuestAttributesValue" = proto.Field(
        proto.MESSAGE,
        number=157570874,
        optional=True,
        message="GuestAttributesValue",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    variable_key: str = proto.Field(
        proto.STRING,
        number=164364828,
        optional=True,
    )
    variable_value: str = proto.Field(
        proto.STRING,
        number=124582382,
        optional=True,
    )


class GuestAttributesEntry(proto.Message):
    r"""A guest attributes namespace/key/value entry.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        key (str):
            Key for the guest attribute entry.

            This field is a member of `oneof`_ ``_key``.
        namespace (str):
            Namespace for the guest attribute entry.

            This field is a member of `oneof`_ ``_namespace``.
        value (str):
            Value for the guest attribute entry.

            This field is a member of `oneof`_ ``_value``.
    """

    key: str = proto.Field(
        proto.STRING,
        number=106079,
        optional=True,
    )
    namespace: str = proto.Field(
        proto.STRING,
        number=178476379,
        optional=True,
    )
    value: str = proto.Field(
        proto.STRING,
        number=111972721,
        optional=True,
    )


class GuestAttributesValue(proto.Message):
    r"""Array of guest attribute namespace/key/value tuples.

    Attributes:
        items (MutableSequence[google.cloud.compute_v1beta.types.GuestAttributesEntry]):

    """

    items: MutableSequence["GuestAttributesEntry"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="GuestAttributesEntry",
    )


class GuestOsFeature(proto.Message):
    r"""Guest OS features.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        type_ (str):
            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 For
            more information, see Enabling guest operating system
            features. Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""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 For more information, see Enabling guest operating
        system features.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            BARE_METAL_LINUX_COMPATIBLE (354232740):
                No description available.
            FEATURE_TYPE_UNSPECIFIED (531767259):
                No description available.
            GVNIC (68209305):
                No description available.
            IDPF (2242641):
                No description available.
            MULTI_IP_SUBNET (151776719):
                No description available.
            SECURE_BOOT (376811194):
                No description available.
            SEV_CAPABLE (87083793):
                No description available.
            SEV_LIVE_MIGRATABLE (392039820):
                No description available.
            SEV_LIVE_MIGRATABLE_V2 (168551983):
                No description available.
            SEV_SNP_CAPABLE (426919):
                No description available.
            SNP_SVSM_CAPABLE (52921460):
                No description available.
            TDX_CAPABLE (240446133):
                No description available.
            UEFI_COMPATIBLE (195865408):
                No description available.
            VIRTIO_SCSI_MULTIQUEUE (201597069):
                No description available.
            WINDOWS (456863331):
                No description available.
        """
        UNDEFINED_TYPE = 0
        BARE_METAL_LINUX_COMPATIBLE = 354232740
        FEATURE_TYPE_UNSPECIFIED = 531767259
        GVNIC = 68209305
        IDPF = 2242641
        MULTI_IP_SUBNET = 151776719
        SECURE_BOOT = 376811194
        SEV_CAPABLE = 87083793
        SEV_LIVE_MIGRATABLE = 392039820
        SEV_LIVE_MIGRATABLE_V2 = 168551983
        SEV_SNP_CAPABLE = 426919
        SNP_SVSM_CAPABLE = 52921460
        TDX_CAPABLE = 240446133
        UEFI_COMPATIBLE = 195865408
        VIRTIO_SCSI_MULTIQUEUE = 201597069
        WINDOWS = 456863331

    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class HTTP2HealthCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        host (str):
            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

            This field is a member of `oneof`_ ``_host``.
        port (int):
            The TCP port number to which the health check
            prober sends packets. The default value is 443.
            Valid values are 1 through 65535.

            This field is a member of `oneof`_ ``_port``.
        port_name (str):
            Not supported.

            This field is a member of `oneof`_ ``_port_name``.
        port_specification (str):
            Specifies how a port is selected for health checking. Can be
            one of the following values: USE_FIXED_PORT: Specifies a
            port number explicitly using the port field in the health
            check. Supported by backend services for passthrough load
            balancers and backend services for proxy load balancers. Not
            supported by target pools. The health check supports all
            backends supported by the backend service provided the
            backend can be health checked. For example, GCE_VM_IP
            network endpoint groups, GCE_VM_IP_PORT network endpoint
            groups, and instance group backends. USE_NAMED_PORT: Not
            supported. USE_SERVING_PORT: Provides an indirect method of
            specifying the health check port by referring to the backend
            service. Only supported by backend services for proxy load
            balancers. Not supported by target pools. Not supported by
            backend services for passthrough load balancers. Supports
            all backends that can be health checked; for example,
            GCE_VM_IP_PORT network endpoint groups and instance group
            backends. For GCE_VM_IP_PORT network endpoint group
            backends, the health check uses the port number specified
            for each endpoint in the network endpoint group. For
            instance group backends, the health check uses the port
            number determined by looking up the backend service's named
            port in the instance group's list of named ports. Check the
            PortSpecification enum for the list of possible values.

            This field is a member of `oneof`_ ``_port_specification``.
        proxy_header (str):
            Specifies the type of proxy header to append before sending
            data to the backend, either NONE or PROXY_V1. The default is
            NONE. Check the ProxyHeader enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_proxy_header``.
        request_path (str):
            The request path of the HTTP/2 health check
            request. The default value is /. Must comply
            with RFC3986.

            This field is a member of `oneof`_ ``_request_path``.
        response (str):
            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

            This field is a member of `oneof`_ ``_response``.
    """

    class PortSpecification(proto.Enum):
        r"""Specifies how a port is selected for health checking. Can be one of
        the following values: USE_FIXED_PORT: Specifies a port number
        explicitly using the port field in the health check. Supported by
        backend services for passthrough load balancers and backend services
        for proxy load balancers. Not supported by target pools. The health
        check supports all backends supported by the backend service
        provided the backend can be health checked. For example, GCE_VM_IP
        network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and
        instance group backends. USE_NAMED_PORT: Not supported.
        USE_SERVING_PORT: Provides an indirect method of specifying the
        health check port by referring to the backend service. Only
        supported by backend services for proxy load balancers. Not
        supported by target pools. Not supported by backend services for
        passthrough load balancers. Supports all backends that can be health
        checked; for example, GCE_VM_IP_PORT network endpoint groups and
        instance group backends. For GCE_VM_IP_PORT network endpoint group
        backends, the health check uses the port number specified for each
        endpoint in the network endpoint group. For instance group backends,
        the health check uses the port number determined by looking up the
        backend service's named port in the instance group's list of named
        ports.

        Values:
            UNDEFINED_PORT_SPECIFICATION (0):
                A value indicating that the enum field is not
                set.
            USE_FIXED_PORT (190235748):
                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 (349300671):
                Not supported.
            USE_SERVING_PORT (362637516):
                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.
        """
        UNDEFINED_PORT_SPECIFICATION = 0
        USE_FIXED_PORT = 190235748
        USE_NAMED_PORT = 349300671
        USE_SERVING_PORT = 362637516

    class ProxyHeader(proto.Enum):
        r"""Specifies the type of proxy header to append before sending data to
        the backend, either NONE or PROXY_V1. The default is NONE.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    host: str = proto.Field(
        proto.STRING,
        number=3208616,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )
    port_specification: str = proto.Field(
        proto.STRING,
        number=51590597,
        optional=True,
    )
    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )
    request_path: str = proto.Field(
        proto.STRING,
        number=229403605,
        optional=True,
    )
    response: str = proto.Field(
        proto.STRING,
        number=196547649,
        optional=True,
    )


class HTTPHealthCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        host (str):
            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

            This field is a member of `oneof`_ ``_host``.
        port (int):
            The TCP port number to which the health check
            prober sends packets. The default value is 80.
            Valid values are 1 through 65535.

            This field is a member of `oneof`_ ``_port``.
        port_name (str):
            Not supported.

            This field is a member of `oneof`_ ``_port_name``.
        port_specification (str):
            Specifies how a port is selected for health checking. Can be
            one of the following values: USE_FIXED_PORT: Specifies a
            port number explicitly using the port field in the health
            check. Supported by backend services for passthrough load
            balancers and backend services for proxy load balancers.
            Also supported in legacy HTTP health checks for target
            pools. The health check supports all backends supported by
            the backend service provided the backend can be health
            checked. For example, GCE_VM_IP network endpoint groups,
            GCE_VM_IP_PORT network endpoint groups, and instance group
            backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT:
            Provides an indirect method of specifying the health check
            port by referring to the backend service. Only supported by
            backend services for proxy load balancers. Not supported by
            target pools. Not supported by backend services for
            pass-through load balancers. Supports all backends that can
            be health checked; for example, GCE_VM_IP_PORT network
            endpoint groups and instance group backends. For
            GCE_VM_IP_PORT network endpoint group backends, the health
            check uses the port number specified for each endpoint in
            the network endpoint group. For instance group backends, the
            health check uses the port number determined by looking up
            the backend service's named port in the instance group's
            list of named ports. Check the PortSpecification enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_port_specification``.
        proxy_header (str):
            Specifies the type of proxy header to append before sending
            data to the backend, either NONE or PROXY_V1. The default is
            NONE. Check the ProxyHeader enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_proxy_header``.
        request_path (str):
            The request path of the HTTP health check
            request. The default value is /. Must comply
            with RFC3986.

            This field is a member of `oneof`_ ``_request_path``.
        response (str):
            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

            This field is a member of `oneof`_ ``_response``.
    """

    class PortSpecification(proto.Enum):
        r"""Specifies how a port is selected for health checking. Can be one of
        the following values: USE_FIXED_PORT: Specifies a port number
        explicitly using the port field in the health check. Supported by
        backend services for passthrough load balancers and backend services
        for proxy load balancers. Also supported in legacy HTTP health
        checks for target pools. The health check supports all backends
        supported by the backend service provided the backend can be health
        checked. For example, GCE_VM_IP network endpoint groups,
        GCE_VM_IP_PORT network endpoint groups, and instance group backends.
        USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
        indirect method of specifying the health check port by referring to
        the backend service. Only supported by backend services for proxy
        load balancers. Not supported by target pools. Not supported by
        backend services for pass-through load balancers. Supports all
        backends that can be health checked; for example, GCE_VM_IP_PORT
        network endpoint groups and instance group backends. For
        GCE_VM_IP_PORT network endpoint group backends, the health check
        uses the port number specified for each endpoint in the network
        endpoint group. For instance group backends, the health check uses
        the port number determined by looking up the backend service's named
        port in the instance group's list of named ports.

        Values:
            UNDEFINED_PORT_SPECIFICATION (0):
                A value indicating that the enum field is not
                set.
            USE_FIXED_PORT (190235748):
                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 (349300671):
                Not supported.
            USE_SERVING_PORT (362637516):
                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.
        """
        UNDEFINED_PORT_SPECIFICATION = 0
        USE_FIXED_PORT = 190235748
        USE_NAMED_PORT = 349300671
        USE_SERVING_PORT = 362637516

    class ProxyHeader(proto.Enum):
        r"""Specifies the type of proxy header to append before sending data to
        the backend, either NONE or PROXY_V1. The default is NONE.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    host: str = proto.Field(
        proto.STRING,
        number=3208616,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )
    port_specification: str = proto.Field(
        proto.STRING,
        number=51590597,
        optional=True,
    )
    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )
    request_path: str = proto.Field(
        proto.STRING,
        number=229403605,
        optional=True,
    )
    response: str = proto.Field(
        proto.STRING,
        number=196547649,
        optional=True,
    )


class HTTPSHealthCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        host (str):
            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

            This field is a member of `oneof`_ ``_host``.
        port (int):
            The TCP port number to which the health check
            prober sends packets. The default value is 443.
            Valid values are 1 through 65535.

            This field is a member of `oneof`_ ``_port``.
        port_name (str):
            Not supported.

            This field is a member of `oneof`_ ``_port_name``.
        port_specification (str):
            Specifies how a port is selected for health checking. Can be
            one of the following values: USE_FIXED_PORT: Specifies a
            port number explicitly using the port field in the health
            check. Supported by backend services for passthrough load
            balancers and backend services for proxy load balancers. Not
            supported by target pools. The health check supports all
            backends supported by the backend service provided the
            backend can be health checked. For example, GCE_VM_IP
            network endpoint groups, GCE_VM_IP_PORT network endpoint
            groups, and instance group backends. USE_NAMED_PORT: Not
            supported. USE_SERVING_PORT: Provides an indirect method of
            specifying the health check port by referring to the backend
            service. Only supported by backend services for proxy load
            balancers. Not supported by target pools. Not supported by
            backend services for passthrough load balancers. Supports
            all backends that can be health checked; for example,
            GCE_VM_IP_PORT network endpoint groups and instance group
            backends. For GCE_VM_IP_PORT network endpoint group
            backends, the health check uses the port number specified
            for each endpoint in the network endpoint group. For
            instance group backends, the health check uses the port
            number determined by looking up the backend service's named
            port in the instance group's list of named ports. Check the
            PortSpecification enum for the list of possible values.

            This field is a member of `oneof`_ ``_port_specification``.
        proxy_header (str):
            Specifies the type of proxy header to append before sending
            data to the backend, either NONE or PROXY_V1. The default is
            NONE. Check the ProxyHeader enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_proxy_header``.
        request_path (str):
            The request path of the HTTPS health check
            request. The default value is /. Must comply
            with RFC3986.

            This field is a member of `oneof`_ ``_request_path``.
        response (str):
            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

            This field is a member of `oneof`_ ``_response``.
    """

    class PortSpecification(proto.Enum):
        r"""Specifies how a port is selected for health checking. Can be one of
        the following values: USE_FIXED_PORT: Specifies a port number
        explicitly using the port field in the health check. Supported by
        backend services for passthrough load balancers and backend services
        for proxy load balancers. Not supported by target pools. The health
        check supports all backends supported by the backend service
        provided the backend can be health checked. For example, GCE_VM_IP
        network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and
        instance group backends. USE_NAMED_PORT: Not supported.
        USE_SERVING_PORT: Provides an indirect method of specifying the
        health check port by referring to the backend service. Only
        supported by backend services for proxy load balancers. Not
        supported by target pools. Not supported by backend services for
        passthrough load balancers. Supports all backends that can be health
        checked; for example, GCE_VM_IP_PORT network endpoint groups and
        instance group backends. For GCE_VM_IP_PORT network endpoint group
        backends, the health check uses the port number specified for each
        endpoint in the network endpoint group. For instance group backends,
        the health check uses the port number determined by looking up the
        backend service's named port in the instance group's list of named
        ports.

        Values:
            UNDEFINED_PORT_SPECIFICATION (0):
                A value indicating that the enum field is not
                set.
            USE_FIXED_PORT (190235748):
                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 (349300671):
                Not supported.
            USE_SERVING_PORT (362637516):
                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.
        """
        UNDEFINED_PORT_SPECIFICATION = 0
        USE_FIXED_PORT = 190235748
        USE_NAMED_PORT = 349300671
        USE_SERVING_PORT = 362637516

    class ProxyHeader(proto.Enum):
        r"""Specifies the type of proxy header to append before sending data to
        the backend, either NONE or PROXY_V1. The default is NONE.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    host: str = proto.Field(
        proto.STRING,
        number=3208616,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )
    port_specification: str = proto.Field(
        proto.STRING,
        number=51590597,
        optional=True,
    )
    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )
    request_path: str = proto.Field(
        proto.STRING,
        number=229403605,
        optional=True,
    )
    response: str = proto.Field(
        proto.STRING,
        number=196547649,
        optional=True,
    )


class HealthCheck(proto.Message):
    r"""Represents a health check resource. Google Compute Engine has two
    health check resources: \*
    `Regional </compute/docs/reference/rest/beta/regionHealthChecks>`__
    \* `Global </compute/docs/reference/rest/beta/healthChecks>`__ These
    health check resources can be used for load balancing and for
    autohealing VMs in a managed instance group (MIG). **Load
    balancing** Health check requirements vary depending on the type of
    load balancer. For details about the type of health check supported
    for each load balancer and corresponding backend type, see Health
    checks overview: Load balancer guide. **Autohealing in MIGs** The
    health checks that you use for autohealing VMs in a MIG can be
    either regional or global. For more information, see Set up an
    application health check and autohealing. For more information, see
    Health checks overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        check_interval_sec (int):
            How often (in seconds) to send a health
            check. The default value is 5 seconds.

            This field is a member of `oneof`_ ``_check_interval_sec``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in 3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        grpc_health_check (google.cloud.compute_v1beta.types.GRPCHealthCheck):

            This field is a member of `oneof`_ ``_grpc_health_check``.
        grpc_tls_health_check (google.cloud.compute_v1beta.types.GRPCTLSHealthCheck):

            This field is a member of `oneof`_ ``_grpc_tls_health_check``.
        healthy_threshold (int):
            A so-far unhealthy instance will be marked
            healthy after this many consecutive successes.
            The default value is 2.

            This field is a member of `oneof`_ ``_healthy_threshold``.
        http2_health_check (google.cloud.compute_v1beta.types.HTTP2HealthCheck):

            This field is a member of `oneof`_ ``_http2_health_check``.
        http_health_check (google.cloud.compute_v1beta.types.HTTPHealthCheck):

            This field is a member of `oneof`_ ``_http_health_check``.
        https_health_check (google.cloud.compute_v1beta.types.HTTPSHealthCheck):

            This field is a member of `oneof`_ ``_https_health_check``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            Type of the resource.

            This field is a member of `oneof`_ ``_kind``.
        log_config (google.cloud.compute_v1beta.types.HealthCheckLogConfig):
            Configure logging on this health check.

            This field is a member of `oneof`_ ``_log_config``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. For example, a name that is 1-63
            characters long, matches the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?``, and otherwise complies with
            RFC1035. This regular expression describes a name where the
            first character is a lowercase letter, and all following
            characters are a dash, lowercase letter, or digit, except
            the last character, which isn't a dash.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [Output Only] Region where the health check resides. Not
            applicable to global health checks.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        source_regions (MutableSequence[str]):
            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.
        ssl_health_check (google.cloud.compute_v1beta.types.SSLHealthCheck):

            This field is a member of `oneof`_ ``_ssl_health_check``.
        tcp_health_check (google.cloud.compute_v1beta.types.TCPHealthCheck):

            This field is a member of `oneof`_ ``_tcp_health_check``.
        timeout_sec (int):
            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.

            This field is a member of `oneof`_ ``_timeout_sec``.
        type_ (str):
            Specifies the type of the healthCheck, either
            TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly
            one of the protocol-specific health check fields
            must be specified, which must match type field.
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
        unhealthy_threshold (int):
            A so-far healthy instance will be marked
            unhealthy after this many consecutive failures.
            The default value is 2.

            This field is a member of `oneof`_ ``_unhealthy_threshold``.
    """

    class Type(proto.Enum):
        r"""Specifies the type of the healthCheck, either TCP, SSL, HTTP,
        HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific
        health check fields must be specified, which must match type
        field.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            GRPC (2196510):
                No description available.
            GRPC_WITH_TLS (268089571):
                No description available.
            HTTP (2228360):
                No description available.
            HTTP2 (69079210):
                No description available.
            HTTPS (69079243):
                No description available.
            INVALID (530283991):
                No description available.
            SSL (82412):
                No description available.
            TCP (82881):
                No description available.
        """
        UNDEFINED_TYPE = 0
        GRPC = 2196510
        GRPC_WITH_TLS = 268089571
        HTTP = 2228360
        HTTP2 = 69079210
        HTTPS = 69079243
        INVALID = 530283991
        SSL = 82412
        TCP = 82881

    check_interval_sec: int = proto.Field(
        proto.INT32,
        number=345561006,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    grpc_health_check: "GRPCHealthCheck" = proto.Field(
        proto.MESSAGE,
        number=85529574,
        optional=True,
        message="GRPCHealthCheck",
    )
    grpc_tls_health_check: "GRPCTLSHealthCheck" = proto.Field(
        proto.MESSAGE,
        number=267273258,
        optional=True,
        message="GRPCTLSHealthCheck",
    )
    healthy_threshold: int = proto.Field(
        proto.INT32,
        number=403212361,
        optional=True,
    )
    http2_health_check: "HTTP2HealthCheck" = proto.Field(
        proto.MESSAGE,
        number=11360986,
        optional=True,
        message="HTTP2HealthCheck",
    )
    http_health_check: "HTTPHealthCheck" = proto.Field(
        proto.MESSAGE,
        number=412586940,
        optional=True,
        message="HTTPHealthCheck",
    )
    https_health_check: "HTTPSHealthCheck" = proto.Field(
        proto.MESSAGE,
        number=436046905,
        optional=True,
        message="HTTPSHealthCheck",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    log_config: "HealthCheckLogConfig" = proto.Field(
        proto.MESSAGE,
        number=351299741,
        optional=True,
        message="HealthCheckLogConfig",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    source_regions: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=405568475,
    )
    ssl_health_check: "SSLHealthCheck" = proto.Field(
        proto.MESSAGE,
        number=280032440,
        optional=True,
        message="SSLHealthCheck",
    )
    tcp_health_check: "TCPHealthCheck" = proto.Field(
        proto.MESSAGE,
        number=469980419,
        optional=True,
        message="TCPHealthCheck",
    )
    timeout_sec: int = proto.Field(
        proto.INT32,
        number=79994995,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    unhealthy_threshold: int = proto.Field(
        proto.INT32,
        number=227958480,
        optional=True,
    )


class HealthCheckList(proto.Message):
    r"""Contains a list of HealthCheck resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.HealthCheck]):
            A list of HealthCheck resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["HealthCheck"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="HealthCheck",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class HealthCheckLogConfig(proto.Message):
    r"""Configuration of logging on a health check. If logging is
    enabled, logs will be exported to Stackdriver.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable (bool):
            Indicates whether or not to export logs. This
            is false by default, which means no health check
            logging will be done.

            This field is a member of `oneof`_ ``_enable``.
    """

    enable: bool = proto.Field(
        proto.BOOL,
        number=311764355,
        optional=True,
    )


class HealthCheckReference(proto.Message):
    r"""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


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):

            This field is a member of `oneof`_ ``_health_check``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
        optional=True,
    )


class HealthCheckService(proto.Message):
    r"""Represents a Health-Check as a Service resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        health_checks (MutableSequence[str]):
            A list of URLs to the HealthCheck resources. Must have at
            least one HealthCheck, and not more than 10 for regional
            HealthCheckService, and not more than 1 for global
            HealthCheckService. HealthCheck resources must have
            portSpecification=USE_SERVING_PORT or
            portSpecification=USE_FIXED_PORT. For regional
            HealthCheckService, the HealthCheck must be regional and in
            the same region. For global HealthCheckService, HealthCheck
            must be global. Mix of regional and global HealthChecks is
            not supported. Multiple regional HealthChecks must belong to
            the same region. Regional HealthChecks must belong to the
            same region as zones of NetworkEndpointGroups. For global
            HealthCheckService using global INTERNET_IP_PORT
            NetworkEndpointGroups, the global HealthChecks must specify
            sourceRegions, and HealthChecks that specify sourceRegions
            can only be used with global INTERNET_IP_PORT
            NetworkEndpointGroups.
        health_status_aggregation_policy (str):
            Optional. Policy for how the results from multiple health
            checks for the same endpoint are aggregated. Defaults to
            NO_AGGREGATION if unspecified. - NO_AGGREGATION. An
            EndpointHealth message is returned for each pair in the
            health check service. - AND. If any health check of an
            endpoint reports UNHEALTHY, then UNHEALTHY is the
            HealthState of the endpoint. If all health checks report
            HEALTHY, the HealthState of the endpoint is HEALTHY. . This
            is only allowed with regional HealthCheckService. Check the
            HealthStatusAggregationPolicy enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_health_status_aggregation_policy``.
        health_status_aggregation_strategy (str):
            This field is deprecated. Use
            health_status_aggregation_policy instead. Policy for how the
            results from multiple health checks for the same endpoint
            are aggregated. - NO_AGGREGATION. An EndpointHealth message
            is returned for each backend in the health check service. -
            AND. If any backend's health check reports UNHEALTHY, then
            UNHEALTHY is the HealthState of the entire health check
            service. If all backend's are healthy, the HealthState of
            the health check service is HEALTHY. . Check the
            HealthStatusAggregationStrategy enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_health_status_aggregation_strategy``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output only] Type of the resource. Always
            compute#healthCheckServicefor health check services.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            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.

            This field is a member of `oneof`_ ``_name``.
        network_endpoint_groups (MutableSequence[str]):
            A list of URLs to the NetworkEndpointGroup resources. Must
            not have more than 100. For regional HealthCheckService,
            NEGs must be in zones in the region of the
            HealthCheckService. For global HealthCheckServices, the
            NetworkEndpointGroups must be global INTERNET_IP_PORT.
        notification_endpoints (MutableSequence[str]):
            A list of URLs to the NotificationEndpoint
            resources. Must not have more than 10. A list of
            endpoints for receiving notifications of change
            in health status. For regional
            HealthCheckService, NotificationEndpoint must be
            regional and in the same region. For global
            HealthCheckService, NotificationEndpoint must be
            global.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    class HealthStatusAggregationPolicy(proto.Enum):
        r"""Optional. Policy for how the results from multiple health checks for
        the same endpoint are aggregated. Defaults to NO_AGGREGATION if
        unspecified. - NO_AGGREGATION. An EndpointHealth message is returned
        for each pair in the health check service. - AND. If any health
        check of an endpoint reports UNHEALTHY, then UNHEALTHY is the
        HealthState of the endpoint. If all health checks report HEALTHY,
        the HealthState of the endpoint is HEALTHY. . This is only allowed
        with regional HealthCheckService. Additional supported values which
        may be not listed in the enum directly due to technical reasons: AND
        NO_AGGREGATION

        Values:
            UNDEFINED_HEALTH_STATUS_AGGREGATION_POLICY (0):
                A value indicating that the enum field is not
                set.
            AND (64951):
                No description available.
            NO_AGGREGATION (426445124):
                No description available.
        """
        UNDEFINED_HEALTH_STATUS_AGGREGATION_POLICY = 0
        AND = 64951
        NO_AGGREGATION = 426445124

    class HealthStatusAggregationStrategy(proto.Enum):
        r"""This field is deprecated. Use health_status_aggregation_policy
        instead. Policy for how the results from multiple health checks for
        the same endpoint are aggregated. - NO_AGGREGATION. An
        EndpointHealth message is returned for each backend in the health
        check service. - AND. If any backend's health check reports
        UNHEALTHY, then UNHEALTHY is the HealthState of the entire health
        check service. If all backend's are healthy, the HealthState of the
        health check service is HEALTHY. . Additional supported values which
        may be not listed in the enum directly due to technical reasons: AND
        NO_AGGREGATION

        Values:
            UNDEFINED_HEALTH_STATUS_AGGREGATION_STRATEGY (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_HEALTH_STATUS_AGGREGATION_STRATEGY = 0

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    health_checks: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=448370606,
    )
    health_status_aggregation_policy: str = proto.Field(
        proto.STRING,
        number=253163129,
        optional=True,
    )
    health_status_aggregation_strategy: str = proto.Field(
        proto.STRING,
        number=254394106,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network_endpoint_groups: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29346733,
    )
    notification_endpoints: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=406728490,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class HealthCheckServiceReference(proto.Message):
    r"""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


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check_service (str):

            This field is a member of `oneof`_ ``_health_check_service``.
    """

    health_check_service: str = proto.Field(
        proto.STRING,
        number=408374747,
        optional=True,
    )


class HealthCheckServicesList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.HealthCheckService]):
            A list of HealthCheckService resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#healthCheckServicesList for lists of
            HealthCheckServices.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["HealthCheckService"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="HealthCheckService",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class HealthChecksAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.HealthChecksScopedList]):
            A list of HealthChecksScopedList resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "HealthChecksScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="HealthChecksScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class HealthChecksScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_checks (MutableSequence[google.cloud.compute_v1beta.types.HealthCheck]):
            A list of HealthChecks contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of backend services when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    health_checks: MutableSequence["HealthCheck"] = proto.RepeatedField(
        proto.MESSAGE,
        number=448370606,
        message="HealthCheck",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class HealthStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        annotations (MutableMapping[str, str]):
            Metadata defined as annotations for network
            endpoint.
        forwarding_rule (str):
            URL of the forwarding rule associated with
            the health status of the instance.

            This field is a member of `oneof`_ ``_forwarding_rule``.
        forwarding_rule_ip (str):
            A forwarding rule IP address assigned to this
            instance.

            This field is a member of `oneof`_ ``_forwarding_rule_ip``.
        health_state (str):
            Health state of the IPv4 address of the
            instance. Check the HealthState enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_health_state``.
        instance (str):
            URL of the instance resource.

            This field is a member of `oneof`_ ``_instance``.
        ip_address (str):
            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.

            This field is a member of `oneof`_ ``_ip_address``.
        ipv6_address (str):

            This field is a member of `oneof`_ ``_ipv6_address``.
        ipv6_health_state (str):
            Health state of the IPv6 address of the
            instance. Check the Ipv6HealthState enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_ipv6_health_state``.
        port (int):
            The named port of the instance group, not
            necessarily the port that is health-checked.

            This field is a member of `oneof`_ ``_port``.
        weight (str):

            This field is a member of `oneof`_ ``_weight``.
        weight_error (str):
            Check the WeightError enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_weight_error``.
    """

    class HealthState(proto.Enum):
        r"""Health state of the IPv4 address of the instance.
        Additional supported values which may be not listed in the enum
        directly due to technical reasons:

        HEALTHY
        UNHEALTHY

        Values:
            UNDEFINED_HEALTH_STATE (0):
                A value indicating that the enum field is not
                set.
            HEALTHY (439801213):
                No description available.
            UNHEALTHY (462118084):
                No description available.
        """
        UNDEFINED_HEALTH_STATE = 0
        HEALTHY = 439801213
        UNHEALTHY = 462118084

    class Ipv6HealthState(proto.Enum):
        r"""Health state of the IPv6 address of the instance.
        Additional supported values which may be not listed in the enum
        directly due to technical reasons:

        HEALTHY
        UNHEALTHY

        Values:
            UNDEFINED_IPV6_HEALTH_STATE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_IPV6_HEALTH_STATE = 0

    class WeightError(proto.Enum):
        r"""

        Values:
            UNDEFINED_WEIGHT_ERROR (0):
                A value indicating that the enum field is not
                set.
            INVALID_WEIGHT (383698400):
                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 (384027537):
                The response to a Health Check probe did not
                have the HTTP response header field
                X-Load-Balancing-Endpoint-Weight.
            UNAVAILABLE_WEIGHT (439464295):
                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 (502428831):
                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.
        """
        UNDEFINED_WEIGHT_ERROR = 0
        INVALID_WEIGHT = 383698400
        MISSING_WEIGHT = 384027537
        UNAVAILABLE_WEIGHT = 439464295
        WEIGHT_NONE = 502428831

    annotations: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=112032548,
    )
    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
        optional=True,
    )
    forwarding_rule_ip: str = proto.Field(
        proto.STRING,
        number=172250632,
        optional=True,
    )
    health_state: str = proto.Field(
        proto.STRING,
        number=324007150,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )
    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    ipv6_address: str = proto.Field(
        proto.STRING,
        number=341563804,
        optional=True,
    )
    ipv6_health_state: str = proto.Field(
        proto.STRING,
        number=190316614,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    weight: str = proto.Field(
        proto.STRING,
        number=282149496,
        optional=True,
    )
    weight_error: str = proto.Field(
        proto.STRING,
        number=522501505,
        optional=True,
    )


class HealthStatusForNetworkEndpoint(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (google.cloud.compute_v1beta.types.BackendServiceReference):
            URL of the backend service associated with
            the health state of the network endpoint.

            This field is a member of `oneof`_ ``_backend_service``.
        forwarding_rule (google.cloud.compute_v1beta.types.ForwardingRuleReference):
            URL of the forwarding rule associated with
            the health state of the network endpoint.

            This field is a member of `oneof`_ ``_forwarding_rule``.
        health_check (google.cloud.compute_v1beta.types.HealthCheckReference):
            URL of the health check associated with the
            health state of the network endpoint.

            This field is a member of `oneof`_ ``_health_check``.
        health_check_service (google.cloud.compute_v1beta.types.HealthCheckServiceReference):
            URL of the health check service associated
            with the health state of the network endpoint.

            This field is a member of `oneof`_ ``_health_check_service``.
        health_state (str):
            Health state of the network endpoint
            determined based on the health checks
            configured. Check the HealthState enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_health_state``.
        ipv6_health_state (str):
            Health state of the ipv6 network endpoint
            determined based on the health checks
            configured. Check the Ipv6HealthState enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_ipv6_health_state``.
    """

    class HealthState(proto.Enum):
        r"""Health state of the network endpoint determined based on the
        health checks configured. Additional supported values which may
        be not listed in the enum directly due to technical reasons:

        DRAINING
        HEALTHY
        UNHEALTHY
        UNKNOWN

        Values:
            UNDEFINED_HEALTH_STATE (0):
                A value indicating that the enum field is not
                set.
            DRAINING (480455402):
                No description available.
            HEALTHY (439801213):
                No description available.
            UNHEALTHY (462118084):
                No description available.
            UNKNOWN (433141802):
                No description available.
        """
        UNDEFINED_HEALTH_STATE = 0
        DRAINING = 480455402
        HEALTHY = 439801213
        UNHEALTHY = 462118084
        UNKNOWN = 433141802

    class Ipv6HealthState(proto.Enum):
        r"""Health state of the ipv6 network endpoint determined based on
        the health checks configured. Additional supported values which
        may be not listed in the enum directly due to technical reasons:

        DRAINING
        HEALTHY
        UNHEALTHY
        UNKNOWN

        Values:
            UNDEFINED_IPV6_HEALTH_STATE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_IPV6_HEALTH_STATE = 0

    backend_service: "BackendServiceReference" = proto.Field(
        proto.MESSAGE,
        number=306946058,
        optional=True,
        message="BackendServiceReference",
    )
    forwarding_rule: "ForwardingRuleReference" = proto.Field(
        proto.MESSAGE,
        number=269964030,
        optional=True,
        message="ForwardingRuleReference",
    )
    health_check: "HealthCheckReference" = proto.Field(
        proto.MESSAGE,
        number=308876645,
        optional=True,
        message="HealthCheckReference",
    )
    health_check_service: "HealthCheckServiceReference" = proto.Field(
        proto.MESSAGE,
        number=408374747,
        optional=True,
        message="HealthCheckServiceReference",
    )
    health_state: str = proto.Field(
        proto.STRING,
        number=324007150,
        optional=True,
    )
    ipv6_health_state: str = proto.Field(
        proto.STRING,
        number=190316614,
        optional=True,
    )


class Help(proto.Message):
    r"""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.

    Attributes:
        links (MutableSequence[google.cloud.compute_v1beta.types.HelpLink]):
            URL(s) pointing to additional information on
            handling the current error.
    """

    links: MutableSequence["HelpLink"] = proto.RepeatedField(
        proto.MESSAGE,
        number=102977465,
        message="HelpLink",
    )


class HelpLink(proto.Message):
    r"""Describes a URL link.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            Describes what the link offers.

            This field is a member of `oneof`_ ``_description``.
        url (str):
            The URL of the link.

            This field is a member of `oneof`_ ``_url``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    url: str = proto.Field(
        proto.STRING,
        number=116079,
        optional=True,
    )


class HostRule(proto.Message):
    r"""UrlMaps A host-matching rule for a URL. If matched, will use
    the named PathMatcher to select the BackendService.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        hosts (MutableSequence[str]):
            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.
        path_matcher (str):
            The name of the PathMatcher to use to match
            the path portion of the URL if the hostRule
            matches the URL's host portion.

            This field is a member of `oneof`_ ``_path_matcher``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    hosts: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=99467211,
    )
    path_matcher: str = proto.Field(
        proto.STRING,
        number=337813272,
        optional=True,
    )


class HttpFaultAbort(proto.Message):
    r"""Specification for how requests are aborted as part of fault
    injection.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        http_status (int):
            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.

            This field is a member of `oneof`_ ``_http_status``.
        percentage (float):
            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.

            This field is a member of `oneof`_ ``_percentage``.
    """

    http_status: int = proto.Field(
        proto.UINT32,
        number=468949897,
        optional=True,
    )
    percentage: float = proto.Field(
        proto.DOUBLE,
        number=151909018,
        optional=True,
    )


class HttpFaultDelay(proto.Message):
    r"""Specifies the delay introduced by the load balancer before
    forwarding the request to the backend service as part of fault
    injection.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fixed_delay (google.cloud.compute_v1beta.types.Duration):
            Specifies the value of the fixed delay
            interval.

            This field is a member of `oneof`_ ``_fixed_delay``.
        percentage (float):
            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.

            This field is a member of `oneof`_ ``_percentage``.
    """

    fixed_delay: "Duration" = proto.Field(
        proto.MESSAGE,
        number=317037816,
        optional=True,
        message="Duration",
    )
    percentage: float = proto.Field(
        proto.DOUBLE,
        number=151909018,
        optional=True,
    )


class HttpFaultInjection(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        abort (google.cloud.compute_v1beta.types.HttpFaultAbort):
            The specification for how client requests are
            aborted as part of fault injection.

            This field is a member of `oneof`_ ``_abort``.
        delay (google.cloud.compute_v1beta.types.HttpFaultDelay):
            The specification for how client requests are
            delayed as part of fault injection, before being
            sent to a backend service.

            This field is a member of `oneof`_ ``_delay``.
    """

    abort: "HttpFaultAbort" = proto.Field(
        proto.MESSAGE,
        number=92611376,
        optional=True,
        message="HttpFaultAbort",
    )
    delay: "HttpFaultDelay" = proto.Field(
        proto.MESSAGE,
        number=95467907,
        optional=True,
        message="HttpFaultDelay",
    )


class HttpFilterConfig(proto.Message):
    r"""HttpFilterConfiguration supplies additional contextual
    settings for networkservices.HttpFilter resources enabled by
    Traffic Director.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        config (str):
            The configuration needed to enable the
            networkservices.HttpFilter resource. The
            configuration must be YAML formatted and only
            contain fields defined in the protobuf
            identified in configTypeUrl

            This field is a member of `oneof`_ ``_config``.
        config_type_url (str):
            The fully qualified versioned proto3 type url
            of the protobuf that the filter expects for its
            contextual settings, for example:
            type.googleapis.com/google.protobuf.Struct

            This field is a member of `oneof`_ ``_config_type_url``.
        filter_name (str):
            Name of the networkservices.HttpFilter
            resource this configuration belongs to. This
            name must be known to the xDS client. Example:
            envoy.wasm

            This field is a member of `oneof`_ ``_filter_name``.
    """

    config: str = proto.Field(
        proto.STRING,
        number=255820610,
        optional=True,
    )
    config_type_url: str = proto.Field(
        proto.STRING,
        number=344821575,
        optional=True,
    )
    filter_name: str = proto.Field(
        proto.STRING,
        number=183620338,
        optional=True,
    )


class HttpHeaderAction(proto.Message):
    r"""The request and response header transformations that take
    effect before the request is passed along to the selected
    backendService.

    Attributes:
        request_headers_to_add (MutableSequence[google.cloud.compute_v1beta.types.HttpHeaderOption]):
            Headers to add to a matching request before
            forwarding the request to the backendService.
        request_headers_to_remove (MutableSequence[str]):
            A list of header names for headers that need
            to be removed from the request before forwarding
            the request to the backendService.
        response_headers_to_add (MutableSequence[google.cloud.compute_v1beta.types.HttpHeaderOption]):
            Headers to add the response before sending
            the response back to the client.
        response_headers_to_remove (MutableSequence[str]):
            A list of header names for headers that need
            to be removed from the response before sending
            the response back to the client.
    """

    request_headers_to_add: MutableSequence["HttpHeaderOption"] = proto.RepeatedField(
        proto.MESSAGE,
        number=72111974,
        message="HttpHeaderOption",
    )
    request_headers_to_remove: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=218425247,
    )
    response_headers_to_add: MutableSequence["HttpHeaderOption"] = proto.RepeatedField(
        proto.MESSAGE,
        number=32136052,
        message="HttpHeaderOption",
    )
    response_headers_to_remove: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=75415761,
    )


class HttpHeaderMatch(proto.Message):
    r"""matchRule criteria for request header matches.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        exact_match (str):
            The value should exactly match contents of
            exactMatch. Only one of exactMatch, prefixMatch,
            suffixMatch, regexMatch, presentMatch or
            rangeMatch must be set.

            This field is a member of `oneof`_ ``_exact_match``.
        header_name (str):
            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``.

            This field is a member of `oneof`_ ``_header_name``.
        invert_match (bool):
            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.

            This field is a member of `oneof`_ ``_invert_match``.
        prefix_match (str):
            The value of the header must start with the
            contents of prefixMatch. Only one of exactMatch,
            prefixMatch, suffixMatch, regexMatch,
            presentMatch or rangeMatch must be set.

            This field is a member of `oneof`_ ``_prefix_match``.
        present_match (bool):
            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.

            This field is a member of `oneof`_ ``_present_match``.
        range_match (google.cloud.compute_v1beta.types.Int64RangeMatch):
            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.

            This field is a member of `oneof`_ ``_range_match``.
        regex_match (str):
            The value of the header must match the regular expression
            specified in regexMatch. For more information about regular
            expression syntax, see Syntax. For matching against a port
            specified in the HTTP request, use a headerMatch with
            headerName set to PORT and a regular expression that
            satisfies the RFC2616 Host header's port specifier. Only one
            of exactMatch, prefixMatch, suffixMatch, regexMatch,
            presentMatch or rangeMatch must be set. Regular expressions
            can only be used when the loadBalancingScheme is set to
            INTERNAL_SELF_MANAGED.

            This field is a member of `oneof`_ ``_regex_match``.
        suffix_match (str):
            The value of the header must end with the
            contents of suffixMatch. Only one of exactMatch,
            prefixMatch, suffixMatch, regexMatch,
            presentMatch or rangeMatch must be set.

            This field is a member of `oneof`_ ``_suffix_match``.
    """

    exact_match: str = proto.Field(
        proto.STRING,
        number=457641093,
        optional=True,
    )
    header_name: str = proto.Field(
        proto.STRING,
        number=110223613,
        optional=True,
    )
    invert_match: bool = proto.Field(
        proto.BOOL,
        number=501130268,
        optional=True,
    )
    prefix_match: str = proto.Field(
        proto.STRING,
        number=257898968,
        optional=True,
    )
    present_match: bool = proto.Field(
        proto.BOOL,
        number=67435841,
        optional=True,
    )
    range_match: "Int64RangeMatch" = proto.Field(
        proto.MESSAGE,
        number=97244227,
        optional=True,
        message="Int64RangeMatch",
    )
    regex_match: str = proto.Field(
        proto.STRING,
        number=107387853,
        optional=True,
    )
    suffix_match: str = proto.Field(
        proto.STRING,
        number=426488663,
        optional=True,
    )


class HttpHeaderOption(proto.Message):
    r"""Specification determining how headers are added to requests
    or responses.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        header_name (str):
            The name of the header.

            This field is a member of `oneof`_ ``_header_name``.
        header_value (str):
            The value of the header to add.

            This field is a member of `oneof`_ ``_header_value``.
        replace (bool):
            If false, headerValue is appended to any
            values that already exist for the header. If
            true, headerValue is set for the header,
            discarding any values that were set for that
            header. The default value is false.

            This field is a member of `oneof`_ ``_replace``.
    """

    header_name: str = proto.Field(
        proto.STRING,
        number=110223613,
        optional=True,
    )
    header_value: str = proto.Field(
        proto.STRING,
        number=203094335,
        optional=True,
    )
    replace: bool = proto.Field(
        proto.BOOL,
        number=20755124,
        optional=True,
    )


class HttpQueryParameterMatch(proto.Message):
    r"""HttpRouteRuleMatch criteria for a request's query parameter.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        exact_match (str):
            The queryParameterMatch matches if the value
            of the parameter exactly matches the contents of
            exactMatch. Only one of presentMatch,
            exactMatch, or regexMatch must be set.

            This field is a member of `oneof`_ ``_exact_match``.
        name (str):
            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.

            This field is a member of `oneof`_ ``_name``.
        present_match (bool):
            Specifies that the queryParameterMatch
            matches if the request contains the query
            parameter, irrespective of whether the parameter
            has a value or not. Only one of presentMatch,
            exactMatch, or regexMatch must be set.

            This field is a member of `oneof`_ ``_present_match``.
        regex_match (str):
            The queryParameterMatch matches if the value of the
            parameter matches the regular expression specified by
            regexMatch. For more information about regular expression
            syntax, see Syntax. Only one of presentMatch, exactMatch, or
            regexMatch must be set. Regular expressions can only be used
            when the loadBalancingScheme is set to
            INTERNAL_SELF_MANAGED.

            This field is a member of `oneof`_ ``_regex_match``.
    """

    exact_match: str = proto.Field(
        proto.STRING,
        number=457641093,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    present_match: bool = proto.Field(
        proto.BOOL,
        number=67435841,
        optional=True,
    )
    regex_match: str = proto.Field(
        proto.STRING,
        number=107387853,
        optional=True,
    )


class HttpRedirectAction(proto.Message):
    r"""Specifies settings for an HTTP redirect.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        host_redirect (str):
            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.

            This field is a member of `oneof`_ ``_host_redirect``.
        https_redirect (bool):
            If set to true, the URL scheme in the
            redirected request is set to HTTPS. If set to
            false, the URL scheme of the redirected request
            remains the same as that of the request. This
            must only be set for URL maps used in
            TargetHttpProxys. Setting this true for
            TargetHttpsProxy is not permitted. The default
            is set to false.

            This field is a member of `oneof`_ ``_https_redirect``.
        path_redirect (str):
            The path that is used in the redirect
            response instead of the one that was supplied in
            the request. pathRedirect cannot be supplied
            together with prefixRedirect. Supply one alone
            or neither. If neither is supplied, the path of
            the original request is used for the redirect.
            The value must be from 1 to 1024 characters.

            This field is a member of `oneof`_ ``_path_redirect``.
        prefix_redirect (str):
            The prefix that replaces the prefixMatch
            specified in the HttpRouteRuleMatch, retaining
            the remaining portion of the URL before
            redirecting the request. prefixRedirect cannot
            be supplied together with pathRedirect. Supply
            one alone or neither. If neither is supplied,
            the path of the original request is used for the
            redirect. The value must be from 1 to 1024
            characters.

            This field is a member of `oneof`_ ``_prefix_redirect``.
        redirect_response_code (str):
            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. Check the RedirectResponseCode enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_redirect_response_code``.
        strip_query (bool):
            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.

            This field is a member of `oneof`_ ``_strip_query``.
    """

    class RedirectResponseCode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_REDIRECT_RESPONSE_CODE (0):
                A value indicating that the enum field is not
                set.
            FOUND (67084130):
                Http Status Code 302 - Found.
            MOVED_PERMANENTLY_DEFAULT (386698449):
                Http Status Code 301 - Moved Permanently.
            PERMANENT_REDIRECT (382006381):
                Http Status Code 308 - Permanent Redirect
                maintaining HTTP method.
            SEE_OTHER (445380580):
                Http Status Code 303 - See Other.
            TEMPORARY_REDIRECT (489550378):
                Http Status Code 307 - Temporary Redirect
                maintaining HTTP method.
        """
        UNDEFINED_REDIRECT_RESPONSE_CODE = 0
        FOUND = 67084130
        MOVED_PERMANENTLY_DEFAULT = 386698449
        PERMANENT_REDIRECT = 382006381
        SEE_OTHER = 445380580
        TEMPORARY_REDIRECT = 489550378

    host_redirect: str = proto.Field(
        proto.STRING,
        number=107417747,
        optional=True,
    )
    https_redirect: bool = proto.Field(
        proto.BOOL,
        number=170260656,
        optional=True,
    )
    path_redirect: str = proto.Field(
        proto.STRING,
        number=272342710,
        optional=True,
    )
    prefix_redirect: str = proto.Field(
        proto.STRING,
        number=446184169,
        optional=True,
    )
    redirect_response_code: str = proto.Field(
        proto.STRING,
        number=436710408,
        optional=True,
    )
    strip_query: bool = proto.Field(
        proto.BOOL,
        number=52284641,
        optional=True,
    )


class HttpRetryPolicy(proto.Message):
    r"""The retry policy associates with HttpRouteRule

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        num_retries (int):
            Specifies the allowed number retries. This
            number must be > 0. If not specified, defaults
            to 1.

            This field is a member of `oneof`_ ``_num_retries``.
        per_try_timeout (google.cloud.compute_v1beta.types.Duration):
            Specifies a non-zero timeout per retry
            attempt. If not specified, will use the timeout
            set in the HttpRouteAction field. If timeout in
            the HttpRouteAction field is not set, this field
            uses the largest timeout among all backend
            services associated with the route. Not
            supported when the URL map is bound to a target
            gRPC proxy that has the validateForProxyless
            field set to true.

            This field is a member of `oneof`_ ``_per_try_timeout``.
        retry_conditions (MutableSequence[str]):
            Specifies one or more conditions when this retry policy
            applies. Valid values are: - 5xx: retry is attempted if the
            instance or endpoint responds with any 5xx response code, or
            if the instance or endpoint does not respond at all. For
            example, disconnects, reset, read timeout, connection
            failure, and refused streams. - gateway-error: Similar to
            5xx, but only applies to response codes 502, 503 or 504. -
            connect-failure: a retry is attempted on failures connecting
            to the instance or endpoint. For example, connection
            timeouts. - retriable-4xx: a retry is attempted if the
            instance or endpoint responds with a 4xx response code. The
            only error that you can retry is error code 409. -
            refused-stream: a retry is attempted if the instance or
            endpoint resets the stream with a REFUSED_STREAM error code.
            This reset type indicates that it is safe to retry. -
            cancelled: a retry is attempted if the gRPC status code in
            the response header is set to cancelled. -
            deadline-exceeded: a retry is attempted if the gRPC status
            code in the response header is set to deadline-exceeded. -
            internal: a retry is attempted if the gRPC status code in
            the response header is set to internal. -
            resource-exhausted: a retry is attempted if the gRPC status
            code in the response header is set to resource-exhausted. -
            unavailable: a retry is attempted if the gRPC status code in
            the response header is set to unavailable. Only the
            following codes are supported when the URL map is bound to
            target gRPC proxy that has validateForProxyless field set to
            true. - cancelled - deadline-exceeded - internal -
            resource-exhausted - unavailable
    """

    num_retries: int = proto.Field(
        proto.UINT32,
        number=251680141,
        optional=True,
    )
    per_try_timeout: "Duration" = proto.Field(
        proto.MESSAGE,
        number=280041147,
        optional=True,
        message="Duration",
    )
    retry_conditions: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=28815535,
    )


class HttpRouteAction(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cors_policy (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_cors_policy``.
        fault_injection_policy (google.cloud.compute_v1beta.types.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 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.

            This field is a member of `oneof`_ ``_fault_injection_policy``.
        max_stream_duration (google.cloud.compute_v1beta.types.Duration):
            Specifies the maximum duration (timeout) for streams on the
            selected route. Unlike the timeout field where the timeout
            duration starts from the time the request has been fully
            processed (known as *end-of-stream*), the duration in this
            field is computed from the beginning of the stream until the
            response has been processed, including all retries. A stream
            that does not complete in this duration is closed. If not
            specified, this field uses the maximum maxStreamDuration
            value among all backend services associated with the route.
            This field is only allowed if the Url map is used with
            backend services with loadBalancingScheme set to
            INTERNAL_SELF_MANAGED.

            This field is a member of `oneof`_ ``_max_stream_duration``.
        request_mirror_policy (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_request_mirror_policy``.
        retry_policy (google.cloud.compute_v1beta.types.HttpRetryPolicy):
            Specifies the retry policy associated with
            this route.

            This field is a member of `oneof`_ ``_retry_policy``.
        timeout (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_timeout``.
        url_rewrite (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_url_rewrite``.
        weighted_backend_services (MutableSequence[google.cloud.compute_v1beta.types.WeightedBackendService]):
            A list of weighted backend services to send
            traffic to when a route match occurs. The
            weights determine the fraction of traffic that
            flows to their corresponding backend service. If
            all traffic needs to go to a single backend
            service, there must be one
            weightedBackendService with weight set to a
            non-zero number. After a backend service is
            identified and before forwarding the request to
            the backend service, advanced routing actions
            such as URL rewrites and header transformations
            are applied depending on additional settings
            specified in this HttpRouteAction.
    """

    cors_policy: "CorsPolicy" = proto.Field(
        proto.MESSAGE,
        number=398943748,
        optional=True,
        message="CorsPolicy",
    )
    fault_injection_policy: "HttpFaultInjection" = proto.Field(
        proto.MESSAGE,
        number=412781079,
        optional=True,
        message="HttpFaultInjection",
    )
    max_stream_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=61428376,
        optional=True,
        message="Duration",
    )
    request_mirror_policy: "RequestMirrorPolicy" = proto.Field(
        proto.MESSAGE,
        number=220196866,
        optional=True,
        message="RequestMirrorPolicy",
    )
    retry_policy: "HttpRetryPolicy" = proto.Field(
        proto.MESSAGE,
        number=56799913,
        optional=True,
        message="HttpRetryPolicy",
    )
    timeout: "Duration" = proto.Field(
        proto.MESSAGE,
        number=296701281,
        optional=True,
        message="Duration",
    )
    url_rewrite: "UrlRewrite" = proto.Field(
        proto.MESSAGE,
        number=273333948,
        optional=True,
        message="UrlRewrite",
    )
    weighted_backend_services: MutableSequence[
        "WeightedBackendService"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=337028049,
        message="WeightedBackendService",
    )


class HttpRouteRule(proto.Message):
    r"""The HttpRouteRule setting specifies how to match an HTTP
    request and the corresponding routing action that load balancing
    proxies perform.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        custom_error_response_policy (google.cloud.compute_v1beta.types.CustomErrorResponsePolicy):
            customErrorResponsePolicy specifies how the Load Balancer
            returns error responses when BackendServiceor BackendBucket
            responds with an error. If a policy for an error code is not
            configured for the RouteRule, a policy for the error code
            configured in pathMatcher.defaultCustomErrorResponsePolicy
            is applied. If one is not specified in
            pathMatcher.defaultCustomErrorResponsePolicy, the policy
            configured in UrlMap.defaultCustomErrorResponsePolicy takes
            effect. For example, consider a UrlMap with the following
            configuration: - UrlMap.defaultCustomErrorResponsePolicy are
            configured with policies for 5xx and 4xx errors - A
            RouteRule for /coming_soon/ is configured for the error code
            404. If the request is for www.myotherdomain.com and a 404
            is encountered, the policy under
            UrlMap.defaultCustomErrorResponsePolicy takes effect. If a
            404 response is encountered for the request
            www.example.com/current_events/, the pathMatcher's policy
            takes effect. If however, the request for
            www.example.com/coming_soon/ encounters a 404, the policy in
            RouteRule.customErrorResponsePolicy takes effect. If any of
            the requests in this example encounter a 500 error code, the
            policy at UrlMap.defaultCustomErrorResponsePolicy takes
            effect. When used in conjunction with
            routeRules.routeAction.retryPolicy, retries take precedence.
            Only once all retries are exhausted, the
            customErrorResponsePolicy is applied. While attempting a
            retry, if load balancer is successful in reaching the
            service, the customErrorResponsePolicy is ignored and the
            response from the service is returned to the client.
            customErrorResponsePolicy is supported only for global
            external Application Load Balancers.

            This field is a member of `oneof`_ ``_custom_error_response_policy``.
        description (str):
            The short description conveying the intent of
            this routeRule. The description can have a
            maximum length of 1024 characters.

            This field is a member of `oneof`_ ``_description``.
        header_action (google.cloud.compute_v1beta.types.HttpHeaderAction):
            Specifies changes to request and response headers that need
            to take effect for the selected backendService. The
            headerAction value specified here is applied before the
            matching pathMatchers[].headerAction and after
            pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].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.

            This field is a member of `oneof`_ ``_header_action``.
        http_filter_configs (MutableSequence[google.cloud.compute_v1beta.types.HttpFilterConfig]):
            Outbound route specific configuration for
            networkservices.HttpFilter resources enabled by Traffic
            Director. httpFilterConfigs only applies for load balancers
            with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See
            ForwardingRule for more details. Not supported when the URL
            map is bound to a target gRPC proxy that has
            validateForProxyless field set to true.
        http_filter_metadata (MutableSequence[google.cloud.compute_v1beta.types.HttpFilterConfig]):
            Outbound route specific metadata supplied to
            networkservices.HttpFilter resources enabled by Traffic
            Director. httpFilterMetadata only applies for load balancers
            with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See
            ForwardingRule for more details. The only configTypeUrl
            supported is type.googleapis.com/google.protobuf.Struct Not
            supported when the URL map is bound to a target gRPC proxy
            that has validateForProxyless field set to true.
        match_rules (MutableSequence[google.cloud.compute_v1beta.types.HttpRouteRuleMatch]):
            The list of criteria for matching attributes
            of a request to this routeRule. This list has OR
            semantics: the request matches this routeRule
            when any of the matchRules are satisfied.
            However predicates within a given matchRule have
            AND semantics. All predicates within a matchRule
            must match for the request to match the rule.
        priority (int):
            For routeRules within a given pathMatcher,
            priority determines the order in which a load
            balancer interprets routeRules. RouteRules are
            evaluated in order of priority, from the lowest
            to highest number. The priority of a rule
            decreases as its number increases (1, 2, 3,
            N+1). The first rule that matches the request is
            applied. You cannot configure two or more
            routeRules with the same priority. Priority for
            each rule must be set to a number from 0 to
            2147483647 inclusive. Priority numbers can have
            gaps, which enable you to add or remove rules in
            the future without affecting the rest of the
            rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is
            a valid series of priority numbers to which you
            could add rules numbered from 6 to 8, 10 to 11,
            and 13 to 15 in the future without any impact on
            existing rules.

            This field is a member of `oneof`_ ``_priority``.
        route_action (google.cloud.compute_v1beta.types.HttpRouteAction):
            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 or
            routeAction.weightedBackendService can be set.
            URL maps for classic Application Load Balancers
            only support the urlRewrite action within a
            route rule's routeAction.

            This field is a member of `oneof`_ ``_route_action``.
        service (str):
            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
            or routeAction.weightedBackendService can be
            set.

            This field is a member of `oneof`_ ``_service``.
        url_redirect (google.cloud.compute_v1beta.types.HttpRedirectAction):
            When this rule is matched, the request is
            redirected to a URL specified by urlRedirect.
            Only one of urlRedirect, service or
            routeAction.weightedBackendService can be set.
            Not supported when the URL map is bound to a
            target gRPC proxy.

            This field is a member of `oneof`_ ``_url_redirect``.
    """

    custom_error_response_policy: "CustomErrorResponsePolicy" = proto.Field(
        proto.MESSAGE,
        number=202816619,
        optional=True,
        message="CustomErrorResponsePolicy",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    header_action: "HttpHeaderAction" = proto.Field(
        proto.MESSAGE,
        number=328077352,
        optional=True,
        message="HttpHeaderAction",
    )
    http_filter_configs: MutableSequence["HttpFilterConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=166372417,
        message="HttpFilterConfig",
    )
    http_filter_metadata: MutableSequence["HttpFilterConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=455841375,
        message="HttpFilterConfig",
    )
    match_rules: MutableSequence["HttpRouteRuleMatch"] = proto.RepeatedField(
        proto.MESSAGE,
        number=376200701,
        message="HttpRouteRuleMatch",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    route_action: "HttpRouteAction" = proto.Field(
        proto.MESSAGE,
        number=424563948,
        optional=True,
        message="HttpRouteAction",
    )
    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )
    url_redirect: "HttpRedirectAction" = proto.Field(
        proto.MESSAGE,
        number=405147820,
        optional=True,
        message="HttpRedirectAction",
    )


class HttpRouteRuleMatch(proto.Message):
    r"""HttpRouteRuleMatch specifies a set of criteria for matching
    requests to an HttpRouteRule. All specified criteria must be
    satisfied for a match to occur.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        full_path_match (str):
            For satisfying the matchRule condition, the
            path of the request must exactly match the value
            specified in fullPathMatch after removing any
            query parameters and anchor that may be part of
            the original URL. fullPathMatch must be from 1
            to 1024 characters. Only one of prefixMatch,
            fullPathMatch or regexMatch must be specified.

            This field is a member of `oneof`_ ``_full_path_match``.
        header_matches (MutableSequence[google.cloud.compute_v1beta.types.HttpHeaderMatch]):
            Specifies a list of header match criteria,
            all of which must match corresponding headers in
            the request.
        ignore_case (bool):
            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.

            This field is a member of `oneof`_ ``_ignore_case``.
        metadata_filters (MutableSequence[google.cloud.compute_v1beta.types.MetadataFilter]):
            Opaque filter criteria used by the load balancer to restrict
            routing configuration to a limited set of xDS compliant
            clients. In their xDS requests to the load balancer, xDS
            clients present node metadata. When there is a match, the
            relevant routing configuration is made available to those
            proxies. For each metadataFilter in this list, if its
            filterMatchCriteria is set to MATCH_ANY, at least one of the
            filterLabels must match the corresponding label provided in
            the metadata. If its filterMatchCriteria is set to
            MATCH_ALL, then all of its filterLabels must match with
            corresponding labels provided in the metadata. If multiple
            metadata filters are specified, all of them need to be
            satisfied in order to be considered a match. metadataFilters
            specified here is applied after those specified in
            ForwardingRule that refers to the UrlMap this
            HttpRouteRuleMatch belongs to. metadataFilters only applies
            to load balancers that have loadBalancingScheme set to
            INTERNAL_SELF_MANAGED. Not supported when the URL map is
            bound to a target gRPC proxy that has validateForProxyless
            field set to true.
        path_template_match (str):
            If specified, the route is a pattern match expression that
            must match the :path header once the query string is
            removed. A pattern match allows you to match - The value
            must be between 1 and 1024 characters - The pattern must
            start with a leading slash ("/") - There may be no more than
            5 operators in pattern Precisely one of prefix_match,
            full_path_match, regex_match or path_template_match must be
            set.

            This field is a member of `oneof`_ ``_path_template_match``.
        prefix_match (str):
            For satisfying the matchRule condition, the
            request's path must begin with the specified
            prefixMatch. prefixMatch must begin with a /.
            The value must be from 1 to 1024 characters.
            Only one of prefixMatch, fullPathMatch or
            regexMatch must be specified.

            This field is a member of `oneof`_ ``_prefix_match``.
        query_parameter_matches (MutableSequence[google.cloud.compute_v1beta.types.HttpQueryParameterMatch]):
            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.
        regex_match (str):
            For satisfying the matchRule condition, the path of the
            request must satisfy the regular expression specified in
            regexMatch after removing any query parameters and anchor
            supplied with the original URL. For more information about
            regular expression syntax, see Syntax. Only one of
            prefixMatch, fullPathMatch or regexMatch must be specified.
            Regular expressions can only be used when the
            loadBalancingScheme is set to INTERNAL_SELF_MANAGED.

            This field is a member of `oneof`_ ``_regex_match``.
    """

    full_path_match: str = proto.Field(
        proto.STRING,
        number=214598875,
        optional=True,
    )
    header_matches: MutableSequence["HttpHeaderMatch"] = proto.RepeatedField(
        proto.MESSAGE,
        number=361903489,
        message="HttpHeaderMatch",
    )
    ignore_case: bool = proto.Field(
        proto.BOOL,
        number=464324989,
        optional=True,
    )
    metadata_filters: MutableSequence["MetadataFilter"] = proto.RepeatedField(
        proto.MESSAGE,
        number=464725739,
        message="MetadataFilter",
    )
    path_template_match: str = proto.Field(
        proto.STRING,
        number=292348186,
        optional=True,
    )
    prefix_match: str = proto.Field(
        proto.STRING,
        number=257898968,
        optional=True,
    )
    query_parameter_matches: MutableSequence[
        "HttpQueryParameterMatch"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=286231270,
        message="HttpQueryParameterMatch",
    )
    regex_match: str = proto.Field(
        proto.STRING,
        number=107387853,
        optional=True,
    )


class Image(proto.Message):
    r"""Represents an Image resource. You can use images to create
    boot disks for your VM instances. For more information, read
    Images.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        architecture (str):
            The architecture of the image. Valid values are ARM64 or
            X86_64. Check the Architecture enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_architecture``.
        archive_size_bytes (int):
            Size of the image tar.gz archive stored in
            Google Cloud Storage (in bytes).

            This field is a member of `oneof`_ ``_archive_size_bytes``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            The deprecation status associated with this
            image.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        disk_size_gb (int):
            Size of the image when restored onto a
            persistent disk (in GB).

            This field is a member of `oneof`_ ``_disk_size_gb``.
        enable_confidential_compute (bool):
            Whether this image is created from a confidential compute
            mode disk. [Output Only]: This field is not set by user, but
            from source disk.

            This field is a member of `oneof`_ ``_enable_confidential_compute``.
        family (str):
            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.

            This field is a member of `oneof`_ ``_family``.
        guest_os_features (MutableSequence[google.cloud.compute_v1beta.types.GuestOsFeature]):
            A list of features to enable on the guest operating system.
            Applicable only for bootable images. To see a list of
            available options, see the guestOSfeatures[].type parameter.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        image_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Encrypts the image using a customer-supplied
            encryption key. After you encrypt an image with
            a customer-supplied key, you must provide the
            same key if you use the image later (e.g. to
            create a disk from the image). Customer-supplied
            encryption keys do not protect access to
            metadata of the disk. If you do not provide an
            encryption key when creating the image, then the
            disk will be encrypted using an automatically
            generated key and you do not need to provide a
            key to use the image later.

            This field is a member of `oneof`_ ``_image_encryption_key``.
        kind (str):
            [Output Only] Type of the resource. Always compute#image for
            images.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this image, which is essentially a hash of the
            labels used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash in order to update
            or change labels, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve an image.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels to apply to this image. These can be
            later modified by the setLabels method.
        license_codes (MutableSequence[int]):
            Integer license codes indicating which
            licenses are attached to this image.
        licenses (MutableSequence[str]):
            Any applicable license URI.
        locked (bool):
            A flag for marketplace VM disk created from
            the image, which is designed for marketplace VM
            disk to prevent the proprietary data on the disk
            from being accessed unwantedly. The flag will be
            inherited by the disk created from the image.
            The disk with locked flag set to true will be
            prohibited from performing the operations below:
            - R/W or R/O disk attach - Disk detach, if disk
            is created via create-on-create - Create images
            - Create snapshots - Create disk clone (create
            disk from the current disk) The image with the
            locked field set to true will be prohibited from
            performing the operations below: - Create images
            from the current image - Update the locked field
            for the current image The instance with at least
            one disk with locked flag set to true will be
            prohibited from performing the operations below:
            - Secondary disk attach - Create instant
            snapshot - Create machine images - Create
            instance template - Delete the instance with
            --keep-disk parameter set to true

            This field is a member of `oneof`_ ``_locked``.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        raw_disk (google.cloud.compute_v1beta.types.RawDisk):
            The parameters of the raw disk image.

            This field is a member of `oneof`_ ``_raw_disk``.
        rollout_override (google.cloud.compute_v1beta.types.RolloutPolicy):
            A rollout policy to apply to this image. When
            specified, the rollout policy overrides per-zone
            references to the image via the associated image
            family. The rollout policy restricts the zones
            where this image is accessible when using a
            zonal image family reference. When the rollout
            policy does not include the user specified zone,
            or if the zone is rolled out, this image is
            accessible. The rollout policy for this image is
            read-only, except for allowlisted users. This
            field might not be configured. To view the
            latest non-deprecated image in a specific zone,
            use the imageFamilyViews.get method.

            This field is a member of `oneof`_ ``_rollout_override``.
        satisfies_pzi (bool):
            Output only. Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzi``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        shielded_instance_initial_state (google.cloud.compute_v1beta.types.InitialStateConfig):
            Set the secure boot keys of shielded
            instance.

            This field is a member of `oneof`_ ``_shielded_instance_initial_state``.
        source_disk (str):
            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

            This field is a member of `oneof`_ ``_source_disk``.
        source_disk_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source disk. Required if the source disk is
            protected by a customer-supplied encryption key.

            This field is a member of `oneof`_ ``_source_disk_encryption_key``.
        source_disk_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_disk_id``.
        source_image (str):
            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

            This field is a member of `oneof`_ ``_source_image``.
        source_image_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source image. Required if the source image is
            protected by a customer-supplied encryption key.

            This field is a member of `oneof`_ ``_source_image_encryption_key``.
        source_image_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_image_id``.
        source_snapshot (str):
            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

            This field is a member of `oneof`_ ``_source_snapshot``.
        source_snapshot_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source snapshot. Required if the source snapshot
            is protected by a customer-supplied encryption
            key.

            This field is a member of `oneof`_ ``_source_snapshot_encryption_key``.
        source_snapshot_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_snapshot_id``.
        source_type (str):
            The type of the image used to create this
            disk. The default and only valid value is RAW.
            Check the SourceType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_source_type``.
        status (str):
            [Output Only] The status of the image. An image can be used
            to create other resources, such as instances, only after the
            image has been successfully created and the status is set to
            READY. Possible values are FAILED, PENDING, or READY. Check
            the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        storage_locations (MutableSequence[str]):
            Cloud Storage bucket storage location of the
            image (regional or multi-regional).
        user_licenses (MutableSequence[str]):
            A list of publicly visible user-licenses.
            Unlike regular licenses, user provided licenses
            can be modified after the disk is created. This
            includes a list of URLs to the license resource.
            For example, to provide a debian license:
            https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-9-stretch
    """

    class Architecture(proto.Enum):
        r"""The architecture of the image. Valid values are ARM64 or X86_64.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    class SourceType(proto.Enum):
        r"""The type of the image used to create this disk. The default
        and only valid value is RAW.

        Values:
            UNDEFINED_SOURCE_TYPE (0):
                A value indicating that the enum field is not
                set.
            RAW (80904):
                No description available.
        """
        UNDEFINED_SOURCE_TYPE = 0
        RAW = 80904

    class Status(proto.Enum):
        r"""[Output Only] The status of the image. An image can be used to
        create other resources, such as instances, only after the image has
        been successfully created and the status is set to READY. Possible
        values are FAILED, PENDING, or READY.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            DELETING (528602024):
                Image is deleting.
            FAILED (455706685):
                Image creation failed due to an error.
            PENDING (35394935):
                Image hasn't been created as yet.
            READY (77848963):
                Image has been successfully created.
        """
        UNDEFINED_STATUS = 0
        DELETING = 528602024
        FAILED = 455706685
        PENDING = 35394935
        READY = 77848963

    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    archive_size_bytes: int = proto.Field(
        proto.INT64,
        number=381093450,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )
    enable_confidential_compute: bool = proto.Field(
        proto.BOOL,
        number=102135228,
        optional=True,
    )
    family: str = proto.Field(
        proto.STRING,
        number=328751972,
        optional=True,
    )
    guest_os_features: MutableSequence["GuestOsFeature"] = proto.RepeatedField(
        proto.MESSAGE,
        number=79294545,
        message="GuestOsFeature",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    image_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=379512583,
        optional=True,
        message="CustomerEncryptionKey",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    license_codes: MutableSequence[int] = proto.RepeatedField(
        proto.INT64,
        number=45482664,
    )
    licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337642578,
    )
    locked: bool = proto.Field(
        proto.BOOL,
        number=513159946,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    raw_disk: "RawDisk" = proto.Field(
        proto.MESSAGE,
        number=503113556,
        optional=True,
        message="RawDisk",
    )
    rollout_override: "RolloutPolicy" = proto.Field(
        proto.MESSAGE,
        number=180331162,
        optional=True,
        message="RolloutPolicy",
    )
    satisfies_pzi: bool = proto.Field(
        proto.BOOL,
        number=480964257,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    shielded_instance_initial_state: "InitialStateConfig" = proto.Field(
        proto.MESSAGE,
        number=192356867,
        optional=True,
        message="InitialStateConfig",
    )
    source_disk: str = proto.Field(
        proto.STRING,
        number=451753793,
        optional=True,
    )
    source_disk_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=531501153,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_disk_id: str = proto.Field(
        proto.STRING,
        number=454190809,
        optional=True,
    )
    source_image: str = proto.Field(
        proto.STRING,
        number=50443319,
        optional=True,
    )
    source_image_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=381503659,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_image_id: str = proto.Field(
        proto.STRING,
        number=55328291,
        optional=True,
    )
    source_snapshot: str = proto.Field(
        proto.STRING,
        number=126061928,
        optional=True,
    )
    source_snapshot_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=303679322,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_snapshot_id: str = proto.Field(
        proto.STRING,
        number=98962258,
        optional=True,
    )
    source_type: str = proto.Field(
        proto.STRING,
        number=452245726,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    storage_locations: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=328005274,
    )
    user_licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=388193862,
    )


class ImageFamilyView(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        image (google.cloud.compute_v1beta.types.Image):
            The latest image that is part of the
            specified image family in the requested
            location, and that is not deprecated.

            This field is a member of `oneof`_ ``_image``.
    """

    image: "Image" = proto.Field(
        proto.MESSAGE,
        number=100313435,
        optional=True,
        message="Image",
    )


class ImageList(proto.Message):
    r"""Contains a list of images.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Image]):
            A list of Image resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Image"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Image",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InitialStateConfig(proto.Message):
    r"""Initial State for shielded instance, these are public keys
    which are safe to store in public


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        dbs (MutableSequence[google.cloud.compute_v1beta.types.FileContentBuffer]):
            The Key Database (db).
        dbxs (MutableSequence[google.cloud.compute_v1beta.types.FileContentBuffer]):
            The forbidden key database (dbx).
        keks (MutableSequence[google.cloud.compute_v1beta.types.FileContentBuffer]):
            The Key Exchange Key (KEK).
        pk (google.cloud.compute_v1beta.types.FileContentBuffer):
            The Platform Key (PK).

            This field is a member of `oneof`_ ``_pk``.
    """

    dbs: MutableSequence["FileContentBuffer"] = proto.RepeatedField(
        proto.MESSAGE,
        number=99253,
        message="FileContentBuffer",
    )
    dbxs: MutableSequence["FileContentBuffer"] = proto.RepeatedField(
        proto.MESSAGE,
        number=3077113,
        message="FileContentBuffer",
    )
    keks: MutableSequence["FileContentBuffer"] = proto.RepeatedField(
        proto.MESSAGE,
        number=3288130,
        message="FileContentBuffer",
    )
    pk: "FileContentBuffer" = proto.Field(
        proto.MESSAGE,
        number=3579,
        optional=True,
        message="FileContentBuffer",
    )


class InsertAddressRequest(proto.Message):
    r"""A request message for Addresses.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address_resource (google.cloud.compute_v1beta.types.Address):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    address_resource: "Address" = proto.Field(
        proto.MESSAGE,
        number=483888121,
        message="Address",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertAutoscalerRequest(proto.Message):
    r"""A request message for Autoscalers.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler_resource (google.cloud.compute_v1beta.types.Autoscaler):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request.
    """

    autoscaler_resource: "Autoscaler" = proto.Field(
        proto.MESSAGE,
        number=207616118,
        message="Autoscaler",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_bucket_resource (google.cloud.compute_v1beta.types.BackendBucket):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_bucket_resource: "BackendBucket" = proto.Field(
        proto.MESSAGE,
        number=380757784,
        message="BackendBucket",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service_resource (google.cloud.compute_v1beta.types.BackendService):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service_resource: "BackendService" = proto.Field(
        proto.MESSAGE,
        number=347586723,
        message="BackendService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertCrossSiteNetworkRequest(proto.Message):
    r"""A request message for CrossSiteNetworks.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cross_site_network_resource (google.cloud.compute_v1beta.types.CrossSiteNetwork):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
        validate_only (bool):
            [Input Only] Validate the new configuration, but don't
            create it.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    cross_site_network_resource: "CrossSiteNetwork" = proto.Field(
        proto.MESSAGE,
        number=30896696,
        message="CrossSiteNetwork",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class InsertDiskRequest(proto.Message):
    r"""A request message for Disks.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_resource (google.cloud.compute_v1beta.types.Disk):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        source_image (str):
            Source image to restore onto a disk. This
            field is optional.

            This field is a member of `oneof`_ ``_source_image``.
        zone (str):
            The name of the zone for this request.
    """

    disk_resource: "Disk" = proto.Field(
        proto.MESSAGE,
        number=25880688,
        message="Disk",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    source_image: str = proto.Field(
        proto.STRING,
        number=50443319,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertExternalVpnGatewayRequest(proto.Message):
    r"""A request message for ExternalVpnGateways.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        external_vpn_gateway_resource (google.cloud.compute_v1beta.types.ExternalVpnGateway):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    external_vpn_gateway_resource: "ExternalVpnGateway" = proto.Field(
        proto.MESSAGE,
        number=486813576,
        message="ExternalVpnGateway",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy_resource (google.cloud.compute_v1beta.types.FirewallPolicy):
            The body resource for this request
        parent_id (str):
            Parent ID for this request. The ID can be either be
            "folders/[FOLDER_ID]" if the parent is a folder or
            "organizations/[ORGANIZATION_ID]" if the parent is an
            organization.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy_resource: "FirewallPolicy" = proto.Field(
        proto.MESSAGE,
        number=495049532,
        message="FirewallPolicy",
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertFirewallRequest(proto.Message):
    r"""A request message for Firewalls.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_resource (google.cloud.compute_v1beta.types.Firewall):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_resource: "Firewall" = proto.Field(
        proto.MESSAGE,
        number=41425005,
        message="Firewall",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertForwardingRuleRequest(proto.Message):
    r"""A request message for ForwardingRules.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule_resource (google.cloud.compute_v1beta.types.ForwardingRule):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    forwarding_rule_resource: "ForwardingRule" = proto.Field(
        proto.MESSAGE,
        number=301211695,
        message="ForwardingRule",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertFutureReservationRequest(proto.Message):
    r"""A request message for FutureReservations.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        future_reservation_resource (google.cloud.compute_v1beta.types.FutureReservation):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request. Name
            should conform to RFC1035.
    """

    future_reservation_resource: "FutureReservation" = proto.Field(
        proto.MESSAGE,
        number=466750493,
        message="FutureReservation",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertGlobalAddressRequest(proto.Message):
    r"""A request message for GlobalAddresses.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address_resource (google.cloud.compute_v1beta.types.Address):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    address_resource: "Address" = proto.Field(
        proto.MESSAGE,
        number=483888121,
        message="Address",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertGlobalForwardingRuleRequest(proto.Message):
    r"""A request message for GlobalForwardingRules.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule_resource (google.cloud.compute_v1beta.types.ForwardingRule):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    forwarding_rule_resource: "ForwardingRule" = proto.Field(
        proto.MESSAGE,
        number=301211695,
        message="ForwardingRule",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertGlobalNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for GlobalNetworkEndpointGroups.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group_resource (google.cloud.compute_v1beta.types.NetworkEndpointGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_endpoint_group_resource: "NetworkEndpointGroup" = proto.Field(
        proto.MESSAGE,
        number=525788839,
        message="NetworkEndpointGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertGlobalPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for GlobalPublicDelegatedPrefixes.Insert.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix_resource (google.cloud.compute_v1beta.types.PublicDelegatedPrefix):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix_resource: "PublicDelegatedPrefix" = proto.Field(
        proto.MESSAGE,
        number=47594501,
        message="PublicDelegatedPrefix",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertHealthCheckRequest(proto.Message):
    r"""A request message for HealthChecks.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check_resource (google.cloud.compute_v1beta.types.HealthCheck):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check_resource: "HealthCheck" = proto.Field(
        proto.MESSAGE,
        number=201925032,
        message="HealthCheck",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertImageRequest(proto.Message):
    r"""A request message for Images.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        force_create (bool):
            Force image creation if true.

            This field is a member of `oneof`_ ``_force_create``.
        image_resource (google.cloud.compute_v1beta.types.Image):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    force_create: bool = proto.Field(
        proto.BOOL,
        number=197723344,
        optional=True,
    )
    image_resource: "Image" = proto.Field(
        proto.MESSAGE,
        number=371171954,
        message="Image",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager_resource (google.cloud.compute_v1beta.types.InstanceGroupManager):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where you want to create
            the managed instance group.
    """

    instance_group_manager_resource: "InstanceGroupManager" = proto.Field(
        proto.MESSAGE,
        number=261063946,
        message="InstanceGroupManager",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagerResizeRequests.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group to
            which the resize request will be added. Name
            should conform to RFC1035 or be a resource ID.
        instance_group_manager_resize_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagerResizeRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located and where the resize
            request will be created. Name should conform to
            RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_manager_resize_request_resource: "InstanceGroupManagerResizeRequest" = proto.Field(
        proto.MESSAGE,
        number=468541293,
        message="InstanceGroupManagerResizeRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertInstanceGroupRequest(proto.Message):
    r"""A request message for InstanceGroups.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_resource (google.cloud.compute_v1beta.types.InstanceGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where you want to create
            the instance group.
    """

    instance_group_resource: "InstanceGroup" = proto.Field(
        proto.MESSAGE,
        number=286612152,
        message="InstanceGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertInstanceRequest(proto.Message):
    r"""A request message for Instances.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_resource (google.cloud.compute_v1beta.types.Instance):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        source_instance_template (str):
            Specifies instance template to create the
            instance. This field is optional. 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 a member of `oneof`_ ``_source_instance_template``.
        source_machine_image (str):
            Specifies the machine image to use to create
            the instance. This field is optional. It can be
            a full or partial URL. For example, the
            following are all valid URLs to a machine image:
            -
            https://www.googleapis.com/compute/v1/projects/project/global/global
            /machineImages/machineImage -
            projects/project/global/global/machineImages/machineImage
            - global/machineImages/machineImage

            This field is a member of `oneof`_ ``_source_machine_image``.
        zone (str):
            The name of the zone for this request.
    """

    instance_resource: "Instance" = proto.Field(
        proto.MESSAGE,
        number=215988344,
        message="Instance",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    source_instance_template: str = proto.Field(
        proto.STRING,
        number=332423616,
        optional=True,
    )
    source_machine_image: str = proto.Field(
        proto.STRING,
        number=21769791,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertInstanceTemplateRequest(proto.Message):
    r"""A request message for InstanceTemplates.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template_resource (google.cloud.compute_v1beta.types.InstanceTemplate):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_template_resource: "InstanceTemplate" = proto.Field(
        proto.MESSAGE,
        number=10679561,
        message="InstanceTemplate",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertInstantSnapshotRequest(proto.Message):
    r"""A request message for InstantSnapshots.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instant_snapshot_resource (google.cloud.compute_v1beta.types.InstantSnapshot):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request.
    """

    instant_snapshot_resource: "InstantSnapshot" = proto.Field(
        proto.MESSAGE,
        number=383915339,
        message="InstantSnapshot",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for InterconnectAttachmentGroups.Insert.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_attachment_group_resource (google.cloud.compute_v1beta.types.InterconnectAttachmentGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect_attachment_group_resource: "InterconnectAttachmentGroup" = proto.Field(
        proto.MESSAGE,
        number=9990137,
        message="InterconnectAttachmentGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertInterconnectAttachmentRequest(proto.Message):
    r"""A request message for InterconnectAttachments.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_attachment_resource (google.cloud.compute_v1beta.types.InterconnectAttachment):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    interconnect_attachment_resource: "InterconnectAttachment" = proto.Field(
        proto.MESSAGE,
        number=212341369,
        message="InterconnectAttachment",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class InsertInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_group_resource (google.cloud.compute_v1beta.types.InterconnectGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect_group_resource: "InterconnectGroup" = proto.Field(
        proto.MESSAGE,
        number=85571999,
        message="InterconnectGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_resource (google.cloud.compute_v1beta.types.Interconnect):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect_resource: "Interconnect" = proto.Field(
        proto.MESSAGE,
        number=397611167,
        message="Interconnect",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertLicenseRequest(proto.Message):
    r"""A request message for Licenses.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        license_resource (google.cloud.compute_v1beta.types.License):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    license_resource: "License" = proto.Field(
        proto.MESSAGE,
        number=437955148,
        message="License",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertMachineImageRequest(proto.Message):
    r"""A request message for MachineImages.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        machine_image_resource (google.cloud.compute_v1beta.types.MachineImage):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        source_instance (str):
            Required. Source instance that is used to
            create the machine image from.

            This field is a member of `oneof`_ ``_source_instance``.
    """

    machine_image_resource: "MachineImage" = proto.Field(
        proto.MESSAGE,
        number=60740970,
        message="MachineImage",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    source_instance: str = proto.Field(
        proto.STRING,
        number=396315705,
        optional=True,
    )


class InsertNetworkAttachmentRequest(proto.Message):
    r"""A request message for NetworkAttachments.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_attachment_resource (google.cloud.compute_v1beta.types.NetworkAttachment):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_attachment_resource: "NetworkAttachment" = proto.Field(
        proto.MESSAGE,
        number=210974745,
        message="NetworkAttachment",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertNetworkEdgeSecurityServiceRequest(proto.Message):
    r"""A request message for NetworkEdgeSecurityServices.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_edge_security_service_resource (google.cloud.compute_v1beta.types.NetworkEdgeSecurityService):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    network_edge_security_service_resource: "NetworkEdgeSecurityService" = proto.Field(
        proto.MESSAGE,
        number=477548966,
        message="NetworkEdgeSecurityService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class InsertNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for NetworkEndpointGroups.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group_resource (google.cloud.compute_v1beta.types.NetworkEndpointGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where you want to create
            the network endpoint group. It should comply
            with RFC1035.
    """

    network_endpoint_group_resource: "NetworkEndpointGroup" = proto.Field(
        proto.MESSAGE,
        number=525788839,
        message="NetworkEndpointGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy_resource (google.cloud.compute_v1beta.types.FirewallPolicy):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy_resource: "FirewallPolicy" = proto.Field(
        proto.MESSAGE,
        number=495049532,
        message="FirewallPolicy",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertNetworkRequest(proto.Message):
    r"""A request message for Networks.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_resource (google.cloud.compute_v1beta.types.Network):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_resource: "Network" = proto.Field(
        proto.MESSAGE,
        number=122105599,
        message="Network",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        initial_node_count (int):
            Initial count of nodes in the node group.
        node_group_resource (google.cloud.compute_v1beta.types.NodeGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    initial_node_count: int = proto.Field(
        proto.INT32,
        number=71951469,
    )
    node_group_resource: "NodeGroup" = proto.Field(
        proto.MESSAGE,
        number=505321899,
        message="NodeGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertNodeTemplateRequest(proto.Message):
    r"""A request message for NodeTemplates.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_template_resource (google.cloud.compute_v1beta.types.NodeTemplate):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    node_template_resource: "NodeTemplate" = proto.Field(
        proto.MESSAGE,
        number=127364406,
        message="NodeTemplate",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.Insert.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        parent_id (str):
            Parent ID for this request. The ID can be either be
            "folders/[FOLDER_ID]" if the parent is a folder or
            "organizations/[ORGANIZATION_ID]" if the parent is an
            organization.

            This field is a member of `oneof`_ ``_parent_id``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_resource (google.cloud.compute_v1beta.types.SecurityPolicy):
            The body resource for this request
    """

    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_resource: "SecurityPolicy" = proto.Field(
        proto.MESSAGE,
        number=216159612,
        message="SecurityPolicy",
    )


class InsertPacketMirroringRequest(proto.Message):
    r"""A request message for PacketMirrorings.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        packet_mirroring_resource (google.cloud.compute_v1beta.types.PacketMirroring):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    packet_mirroring_resource: "PacketMirroring" = proto.Field(
        proto.MESSAGE,
        number=493501985,
        message="PacketMirroring",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertPublicAdvertisedPrefixeRequest(proto.Message):
    r"""A request message for PublicAdvertisedPrefixes.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_advertised_prefix_resource (google.cloud.compute_v1beta.types.PublicAdvertisedPrefix):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_advertised_prefix_resource: "PublicAdvertisedPrefix" = proto.Field(
        proto.MESSAGE,
        number=233614223,
        message="PublicAdvertisedPrefix",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix_resource (google.cloud.compute_v1beta.types.PublicDelegatedPrefix):
            The body resource for this request
        region (str):
            Name of the region of this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix_resource: "PublicDelegatedPrefix" = proto.Field(
        proto.MESSAGE,
        number=47594501,
        message="PublicDelegatedPrefix",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionAutoscalerRequest(proto.Message):
    r"""A request message for RegionAutoscalers.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler_resource (google.cloud.compute_v1beta.types.Autoscaler):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    autoscaler_resource: "Autoscaler" = proto.Field(
        proto.MESSAGE,
        number=207616118,
        message="Autoscaler",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service_resource (google.cloud.compute_v1beta.types.BackendService):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service_resource: "BackendService" = proto.Field(
        proto.MESSAGE,
        number=347586723,
        message="BackendService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionCommitmentRequest(proto.Message):
    r"""A request message for RegionCommitments.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        commitment_resource (google.cloud.compute_v1beta.types.Commitment):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    commitment_resource: "Commitment" = proto.Field(
        proto.MESSAGE,
        number=244240888,
        message="Commitment",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_resource (google.cloud.compute_v1beta.types.Disk):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        source_image (str):
            Source image to restore onto a disk. This
            field is optional.

            This field is a member of `oneof`_ ``_source_image``.
    """

    disk_resource: "Disk" = proto.Field(
        proto.MESSAGE,
        number=25880688,
        message="Disk",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    source_image: str = proto.Field(
        proto.STRING,
        number=50443319,
        optional=True,
    )


class InsertRegionHealthCheckRequest(proto.Message):
    r"""A request message for RegionHealthChecks.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check_resource (google.cloud.compute_v1beta.types.HealthCheck):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check_resource: "HealthCheck" = proto.Field(
        proto.MESSAGE,
        number=201925032,
        message="HealthCheck",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionHealthCheckServiceRequest(proto.Message):
    r"""A request message for RegionHealthCheckServices.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check_service_resource (google.cloud.compute_v1beta.types.HealthCheckService):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check_service_resource: "HealthCheckService" = proto.Field(
        proto.MESSAGE,
        number=477367794,
        message="HealthCheckService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager_resource (google.cloud.compute_v1beta.types.InstanceGroupManager):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager_resource: "InstanceGroupManager" = proto.Field(
        proto.MESSAGE,
        number=261063946,
        message="InstanceGroupManager",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionInstanceGroupManagerResizeRequestRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagerResizeRequests.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group to which
            the resize request is scoped. Name should
            conform to RFC1035 or be a resource ID.
        instance_group_manager_resize_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagerResizeRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request. Name
            should conform to RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_manager_resize_request_resource: "InstanceGroupManagerResizeRequest" = proto.Field(
        proto.MESSAGE,
        number=468541293,
        message="InstanceGroupManagerResizeRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionInstanceTemplateRequest(proto.Message):
    r"""A request message for RegionInstanceTemplates.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template_resource (google.cloud.compute_v1beta.types.InstanceTemplate):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_template_resource: "InstanceTemplate" = proto.Field(
        proto.MESSAGE,
        number=10679561,
        message="InstanceTemplate",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionInstantSnapshotRequest(proto.Message):
    r"""A request message for RegionInstantSnapshots.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instant_snapshot_resource (google.cloud.compute_v1beta.types.InstantSnapshot):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instant_snapshot_resource: "InstantSnapshot" = proto.Field(
        proto.MESSAGE,
        number=383915339,
        message="InstantSnapshot",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionMultiMigRequest(proto.Message):
    r"""A request message for RegionMultiMigs.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        multi_mig_resource (google.cloud.compute_v1beta.types.MultiMig):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents you from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    multi_mig_resource: "MultiMig" = proto.Field(
        proto.MESSAGE,
        number=173722824,
        message="MultiMig",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for RegionNetworkEndpointGroups.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_group_resource (google.cloud.compute_v1beta.types.NetworkEndpointGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where you want to
            create the network endpoint group. It should
            comply with RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_endpoint_group_resource: "NetworkEndpointGroup" = proto.Field(
        proto.MESSAGE,
        number=525788839,
        message="NetworkEndpointGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for RegionNetworkFirewallPolicies.Insert.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy_resource (google.cloud.compute_v1beta.types.FirewallPolicy):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy_resource: "FirewallPolicy" = proto.Field(
        proto.MESSAGE,
        number=495049532,
        message="FirewallPolicy",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionNotificationEndpointRequest(proto.Message):
    r"""A request message for RegionNotificationEndpoints.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        notification_endpoint_resource (google.cloud.compute_v1beta.types.NotificationEndpoint):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    notification_endpoint_resource: "NotificationEndpoint" = proto.Field(
        proto.MESSAGE,
        number=338459940,
        message="NotificationEndpoint",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class InsertRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_resource (google.cloud.compute_v1beta.types.SecurityPolicy):
            The body resource for this request
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_resource: "SecurityPolicy" = proto.Field(
        proto.MESSAGE,
        number=216159612,
        message="SecurityPolicy",
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class InsertRegionSnapshotRequest(proto.Message):
    r"""A request message for RegionSnapshots.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot_resource (google.cloud.compute_v1beta.types.Snapshot):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot_resource: "Snapshot" = proto.Field(
        proto.MESSAGE,
        number=481319977,
        message="Snapshot",
    )


class InsertRegionSslCertificateRequest(proto.Message):
    r"""A request message for RegionSslCertificates.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_certificate_resource (google.cloud.compute_v1beta.types.SslCertificate):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_certificate_resource: "SslCertificate" = proto.Field(
        proto.MESSAGE,
        number=180709897,
        message="SslCertificate",
    )


class InsertRegionSslPolicyRequest(proto.Message):
    r"""A request message for RegionSslPolicies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy_resource (google.cloud.compute_v1beta.types.SslPolicy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy_resource: "SslPolicy" = proto.Field(
        proto.MESSAGE,
        number=274891848,
        message="SslPolicy",
    )


class InsertRegionTargetHttpProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpProxies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_http_proxy_resource (google.cloud.compute_v1beta.types.TargetHttpProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_http_proxy_resource: "TargetHttpProxy" = proto.Field(
        proto.MESSAGE,
        number=24696744,
        message="TargetHttpProxy",
    )


class InsertRegionTargetHttpsProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpsProxies.Insert. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy_resource (google.cloud.compute_v1beta.types.TargetHttpsProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy_resource: "TargetHttpsProxy" = proto.Field(
        proto.MESSAGE,
        number=433657473,
        message="TargetHttpsProxy",
    )


class InsertRegionTargetTcpProxyRequest(proto.Message):
    r"""A request message for RegionTargetTcpProxies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_tcp_proxy_resource (google.cloud.compute_v1beta.types.TargetTcpProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_tcp_proxy_resource: "TargetTcpProxy" = proto.Field(
        proto.MESSAGE,
        number=145913931,
        message="TargetTcpProxy",
    )


class InsertRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            begin_interface: MixerMutationRequestBuilder Request ID to
            support idempotency.

            This field is a member of `oneof`_ ``_request_id``.
        url_map_resource (google.cloud.compute_v1beta.types.UrlMap):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map_resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=168675425,
        message="UrlMap",
    )


class InsertReservationRequest(proto.Message):
    r"""A request message for Reservations.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        reservation_resource (google.cloud.compute_v1beta.types.Reservation):
            The body resource for this request
        zone (str):
            Name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    reservation_resource: "Reservation" = proto.Field(
        proto.MESSAGE,
        number=285030177,
        message="Reservation",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertResourcePolicyRequest(proto.Message):
    r"""A request message for ResourcePolicies.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource_policy_resource (google.cloud.compute_v1beta.types.ResourcePolicy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource_policy_resource: "ResourcePolicy" = proto.Field(
        proto.MESSAGE,
        number=76826186,
        message="ResourcePolicy",
    )


class InsertRouteRequest(proto.Message):
    r"""A request message for Routes.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        route_resource (google.cloud.compute_v1beta.types.Route):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    route_resource: "Route" = proto.Field(
        proto.MESSAGE,
        number=225428804,
        message="Route",
    )


class InsertRouterRequest(proto.Message):
    r"""A request message for Routers.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        router_resource (google.cloud.compute_v1beta.types.Router):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    router_resource: "Router" = proto.Field(
        proto.MESSAGE,
        number=155222084,
        message="Router",
    )


class InsertSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_resource (google.cloud.compute_v1beta.types.SecurityPolicy):
            The body resource for this request
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_resource: "SecurityPolicy" = proto.Field(
        proto.MESSAGE,
        number=216159612,
        message="SecurityPolicy",
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class InsertServiceAttachmentRequest(proto.Message):
    r"""A request message for ServiceAttachments.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        service_attachment_resource (google.cloud.compute_v1beta.types.ServiceAttachment):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    service_attachment_resource: "ServiceAttachment" = proto.Field(
        proto.MESSAGE,
        number=472980256,
        message="ServiceAttachment",
    )


class InsertSnapshotRequest(proto.Message):
    r"""A request message for Snapshots.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot_resource (google.cloud.compute_v1beta.types.Snapshot):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot_resource: "Snapshot" = proto.Field(
        proto.MESSAGE,
        number=481319977,
        message="Snapshot",
    )


class InsertSslCertificateRequest(proto.Message):
    r"""A request message for SslCertificates.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_certificate_resource (google.cloud.compute_v1beta.types.SslCertificate):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_certificate_resource: "SslCertificate" = proto.Field(
        proto.MESSAGE,
        number=180709897,
        message="SslCertificate",
    )


class InsertSslPolicyRequest(proto.Message):
    r"""A request message for SslPolicies.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy_resource (google.cloud.compute_v1beta.types.SslPolicy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy_resource: "SslPolicy" = proto.Field(
        proto.MESSAGE,
        number=274891848,
        message="SslPolicy",
    )


class InsertStoragePoolRequest(proto.Message):
    r"""A request message for StoragePools.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        storage_pool_resource (google.cloud.compute_v1beta.types.StoragePool):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    storage_pool_resource: "StoragePool" = proto.Field(
        proto.MESSAGE,
        number=157179405,
        message="StoragePool",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertSubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        subnetwork_resource (google.cloud.compute_v1beta.types.Subnetwork):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    subnetwork_resource: "Subnetwork" = proto.Field(
        proto.MESSAGE,
        number=42233151,
        message="Subnetwork",
    )


class InsertTargetGrpcProxyRequest(proto.Message):
    r"""A request message for TargetGrpcProxies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_grpc_proxy_resource (google.cloud.compute_v1beta.types.TargetGrpcProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_grpc_proxy_resource: "TargetGrpcProxy" = proto.Field(
        proto.MESSAGE,
        number=328922450,
        message="TargetGrpcProxy",
    )


class InsertTargetHttpProxyRequest(proto.Message):
    r"""A request message for TargetHttpProxies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_http_proxy_resource (google.cloud.compute_v1beta.types.TargetHttpProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_http_proxy_resource: "TargetHttpProxy" = proto.Field(
        proto.MESSAGE,
        number=24696744,
        message="TargetHttpProxy",
    )


class InsertTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy_resource (google.cloud.compute_v1beta.types.TargetHttpsProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy_resource: "TargetHttpsProxy" = proto.Field(
        proto.MESSAGE,
        number=433657473,
        message="TargetHttpsProxy",
    )


class InsertTargetInstanceRequest(proto.Message):
    r"""A request message for TargetInstances.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_instance_resource (google.cloud.compute_v1beta.types.TargetInstance):
            The body resource for this request
        zone (str):
            Name of the zone scoping this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_instance_resource: "TargetInstance" = proto.Field(
        proto.MESSAGE,
        number=430453066,
        message="TargetInstance",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class InsertTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_pool_resource (google.cloud.compute_v1beta.types.TargetPool):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_pool_resource: "TargetPool" = proto.Field(
        proto.MESSAGE,
        number=101281443,
        message="TargetPool",
    )


class InsertTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_ssl_proxy_resource (google.cloud.compute_v1beta.types.TargetSslProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_ssl_proxy_resource: "TargetSslProxy" = proto.Field(
        proto.MESSAGE,
        number=142016192,
        message="TargetSslProxy",
    )


class InsertTargetTcpProxyRequest(proto.Message):
    r"""A request message for TargetTcpProxies.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_tcp_proxy_resource (google.cloud.compute_v1beta.types.TargetTcpProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_tcp_proxy_resource: "TargetTcpProxy" = proto.Field(
        proto.MESSAGE,
        number=145913931,
        message="TargetTcpProxy",
    )


class InsertTargetVpnGatewayRequest(proto.Message):
    r"""A request message for TargetVpnGateways.Insert. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_vpn_gateway_resource (google.cloud.compute_v1beta.types.TargetVpnGateway):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_vpn_gateway_resource: "TargetVpnGateway" = proto.Field(
        proto.MESSAGE,
        number=498050,
        message="TargetVpnGateway",
    )


class InsertUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        url_map_resource (google.cloud.compute_v1beta.types.UrlMap):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map_resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=168675425,
        message="UrlMap",
    )


class InsertVpnGatewayRequest(proto.Message):
    r"""A request message for VpnGateways.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        vpn_gateway_resource (google.cloud.compute_v1beta.types.VpnGateway):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    vpn_gateway_resource: "VpnGateway" = proto.Field(
        proto.MESSAGE,
        number=182688660,
        message="VpnGateway",
    )


class InsertVpnTunnelRequest(proto.Message):
    r"""A request message for VpnTunnels.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        vpn_tunnel_resource (google.cloud.compute_v1beta.types.VpnTunnel):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    vpn_tunnel_resource: "VpnTunnel" = proto.Field(
        proto.MESSAGE,
        number=86839482,
        message="VpnTunnel",
    )


class InsertWireGroupRequest(proto.Message):
    r"""A request message for WireGroups.Insert. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cross_site_network (str):

        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
        validate_only (bool):
            [Input Only] Validate the new configuration, but don't
            create it.

            This field is a member of `oneof`_ ``_validate_only``.
        wire_group_resource (google.cloud.compute_v1beta.types.WireGroup):
            The body resource for this request
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )
    wire_group_resource: "WireGroup" = proto.Field(
        proto.MESSAGE,
        number=117104840,
        message="WireGroup",
    )


class Instance(proto.Message):
    r"""Represents an Instance resource. An instance is a virtual
    machine that is hosted on Google Cloud Platform. For more
    information, read Virtual Machine Instances.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        advanced_machine_features (google.cloud.compute_v1beta.types.AdvancedMachineFeatures):
            Controls for advanced machine-related
            behavior features.

            This field is a member of `oneof`_ ``_advanced_machine_features``.
        can_ip_forward (bool):
            Allows this instance to send and receive
            packets with non-matching destination or source
            IPs. This is required if you plan to use this
            instance to forward routes. For more
            information, see Enabling IP Forwarding .

            This field is a member of `oneof`_ ``_can_ip_forward``.
        confidential_instance_config (google.cloud.compute_v1beta.types.ConfidentialInstanceConfig):

            This field is a member of `oneof`_ ``_confidential_instance_config``.
        cpu_platform (str):
            [Output Only] The CPU platform used by this instance.

            This field is a member of `oneof`_ ``_cpu_platform``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deletion_protection (bool):
            Whether the resource should be protected
            against deletion.

            This field is a member of `oneof`_ ``_deletion_protection``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        disks (MutableSequence[google.cloud.compute_v1beta.types.AttachedDisk]):
            Array of disks associated with this instance.
            Persistent disks must be created before you can
            assign them.
        display_device (google.cloud.compute_v1beta.types.DisplayDevice):
            Enables display device for the instance.

            This field is a member of `oneof`_ ``_display_device``.
        erase_windows_vss_signature (bool):
            Specifies whether the disks restored from
            source snapshots or source machine image should
            erase Windows specific VSS signature.

            This field is a member of `oneof`_ ``_erase_windows_vss_signature``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        guest_accelerators (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorConfig]):
            A list of the type and count of accelerator
            cards attached to the instance.
        hostname (str):
            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.

            This field is a member of `oneof`_ ``_hostname``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        instance_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Encrypts suspended data for an instance with
            a customer-managed encryption key. If you are
            creating a new instance, this field will encrypt
            the local SSD and in-memory contents of the
            instance during the suspend operation. If you do
            not provide an encryption key when creating the
            instance, then the local SSD and in-memory
            contents will be encrypted using an
            automatically generated key during the suspend
            operation.

            This field is a member of `oneof`_ ``_instance_encryption_key``.
        key_revocation_action_type (str):
            KeyRevocationActionType of the instance.
            Supported options are "STOP" and "NONE". The
            default value is "NONE" if it is not specified.
            Check the KeyRevocationActionType enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_key_revocation_action_type``.
        kind (str):
            [Output Only] Type of the resource. Always compute#instance
            for instances.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels to apply to this instance. These can
            be later modified by the setLabels method.
        last_start_timestamp (str):
            [Output Only] Last start timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_last_start_timestamp``.
        last_stop_timestamp (str):
            [Output Only] Last stop timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_last_stop_timestamp``.
        last_suspended_timestamp (str):
            [Output Only] Last suspended timestamp in RFC3339 text
            format.

            This field is a member of `oneof`_ ``_last_suspended_timestamp``.
        machine_type (str):
            Full or partial URL of the machine type
            resource to use for this instance, in the
            format: zones/zone/machineTypes/machine-type.
            This is provided by the client when the instance
            is created. For example, the following is a
            valid partial url to a predefined machine type:
            zones/us-central1-f/machineTypes/n1-standard-1
            To create a custom machine type, provide a URL
            to a machine type in the following format, where
            CPUS is 1 or an even number up to 32 (2, 4, 6,
            ... 24, etc), and MEMORY is the total memory for
            this instance. Memory must be a multiple of 256
            MB and must be supplied in MB (e.g. 5 GB of
            memory is 5120 MB):
            zones/zone/machineTypes/custom-CPUS-MEMORY For
            example:
            zones/us-central1-f/machineTypes/custom-4-5120
            For a full list of restrictions, read the
            Specifications for custom machine types.

            This field is a member of `oneof`_ ``_machine_type``.
        metadata (google.cloud.compute_v1beta.types.Metadata):
            The metadata key/value pairs assigned to this
            instance. This includes custom metadata and
            predefined keys.

            This field is a member of `oneof`_ ``_metadata``.
        min_cpu_platform (str):
            Specifies a minimum CPU platform for the VM
            instance. Applicable values are the friendly
            names of CPU platforms, such as minCpuPlatform:
            "Intel Haswell" or minCpuPlatform: "Intel Sandy
            Bridge".

            This field is a member of `oneof`_ ``_min_cpu_platform``.
        name (str):
            The name of the resource, provided by the client when
            initially creating the resource. The resource name must be
            1-63 characters long, and comply with RFC1035. Specifically,
            the name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network_interfaces (MutableSequence[google.cloud.compute_v1beta.types.NetworkInterface]):
            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.
        network_performance_config (google.cloud.compute_v1beta.types.NetworkPerformanceConfig):

            This field is a member of `oneof`_ ``_network_performance_config``.
        params (google.cloud.compute_v1beta.types.InstanceParams):
            Input only. [Input Only] Additional params passed with the
            request, but not persisted as part of resource payload.

            This field is a member of `oneof`_ ``_params``.
        partner_metadata (MutableMapping[str, google.cloud.compute_v1beta.types.StructuredEntries]):
            Partner Metadata assigned to the instance. A
            map from a subdomain (namespace) to entries map.
        post_key_revocation_action_type (str):
            PostKeyRevocationActionType of the instance.
            Check the PostKeyRevocationActionType enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_post_key_revocation_action_type``.
        private_ipv6_google_access (str):
            The private IPv6 google access type for the VM. If not
            specified, use INHERIT_FROM_SUBNETWORK as default. Check the
            PrivateIpv6GoogleAccess enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_private_ipv6_google_access``.
        reservation_affinity (google.cloud.compute_v1beta.types.ReservationAffinity):
            Specifies the reservations that this instance
            can consume from.

            This field is a member of `oneof`_ ``_reservation_affinity``.
        resource_policies (MutableSequence[str]):
            Resource policies applied to this instance.
        resource_status (google.cloud.compute_v1beta.types.ResourceStatus):
            [Output Only] Specifies values set for instance attributes
            as compared to the values requested by user in the
            corresponding input only field.

            This field is a member of `oneof`_ ``_resource_status``.
        satisfies_pzi (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzi``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        scheduling (google.cloud.compute_v1beta.types.Scheduling):
            Sets the scheduling options for this
            instance.

            This field is a member of `oneof`_ ``_scheduling``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        service_accounts (MutableSequence[google.cloud.compute_v1beta.types.ServiceAccount]):
            A list of service accounts, with their
            specified scopes, authorized for this instance.
            Only one service account per VM instance is
            supported. Service accounts generate access
            tokens that can be accessed through the metadata
            server and used to authenticate applications on
            the instance. See Service Accounts for more
            information.
        shielded_instance_config (google.cloud.compute_v1beta.types.ShieldedInstanceConfig):

            This field is a member of `oneof`_ ``_shielded_instance_config``.
        shielded_instance_integrity_policy (google.cloud.compute_v1beta.types.ShieldedInstanceIntegrityPolicy):

            This field is a member of `oneof`_ ``_shielded_instance_integrity_policy``.
        shielded_vm_config (google.cloud.compute_v1beta.types.ShieldedVmConfig):
            Deprecating, please use shielded_instance_config.

            This field is a member of `oneof`_ ``_shielded_vm_config``.
        shielded_vm_integrity_policy (google.cloud.compute_v1beta.types.ShieldedVmIntegrityPolicy):
            Deprecating, please use shielded_instance_integrity_policy.

            This field is a member of `oneof`_ ``_shielded_vm_integrity_policy``.
        source_machine_image (str):
            Source machine image

            This field is a member of `oneof`_ ``_source_machine_image``.
        source_machine_image_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Source machine image encryption key when
            creating an instance from a machine image.

            This field is a member of `oneof`_ ``_source_machine_image_encryption_key``.
        start_restricted (bool):
            [Output Only] Whether a VM has been restricted for start
            because Compute Engine has detected suspicious activity.

            This field is a member of `oneof`_ ``_start_restricted``.
        status (str):
            [Output Only] The status of the instance. One of the
            following values: PROVISIONING, STAGING, RUNNING, STOPPING,
            SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more
            information about the status of the instance, see Instance
            life cycle. Check the Status enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_status``.
        status_message (str):
            [Output Only] An optional, human-readable explanation of the
            status.

            This field is a member of `oneof`_ ``_status_message``.
        tags (google.cloud.compute_v1beta.types.Tags):
            Tags to apply to this instance. Tags are used
            to identify valid sources or targets for network
            firewalls and are specified by the client during
            instance creation. The tags can be later
            modified by the setTags method. Each tag within
            the list must comply with RFC1035. Multiple tags
            can be specified via the 'tags.items' field.

            This field is a member of `oneof`_ ``_tags``.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    class KeyRevocationActionType(proto.Enum):
        r"""KeyRevocationActionType of the instance. Supported options
        are "STOP" and "NONE". The default value is "NONE" if it is not
        specified.

        Values:
            UNDEFINED_KEY_REVOCATION_ACTION_TYPE (0):
                A value indicating that the enum field is not
                set.
            KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED (467110106):
                Default value. This value is unused.
            NONE (2402104):
                Indicates user chose no operation.
            STOP (2555906):
                Indicates user chose to opt for VM shutdown
                on key revocation.
        """
        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0
        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106
        NONE = 2402104
        STOP = 2555906

    class PostKeyRevocationActionType(proto.Enum):
        r"""PostKeyRevocationActionType of the instance.

        Values:
            UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE (0):
                A value indicating that the enum field is not
                set.
            NOOP (2402146):
                Indicates user chose no operation.
            POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED (228738393):
                Default value. This value is unused.
            SHUTDOWN (76412502):
                Indicates user chose to opt for VM shutdown
                on key revocation.
        """
        UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE = 0
        NOOP = 2402146
        POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 228738393
        SHUTDOWN = 76412502

    class PrivateIpv6GoogleAccess(proto.Enum):
        r"""The private IPv6 google access type for the VM. If not specified,
        use INHERIT_FROM_SUBNETWORK as default.

        Values:
            UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS (0):
                A value indicating that the enum field is not
                set.
            ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE (427975994):
                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 (288210263):
                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 (530256959):
                Each network interface inherits
                PrivateIpv6GoogleAccess from its subnetwork.
        """
        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0
        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994
        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263
        INHERIT_FROM_SUBNETWORK = 530256959

    class Status(proto.Enum):
        r"""[Output Only] The status of the instance. One of the following
        values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING,
        SUSPENDED, REPAIRING, and TERMINATED. For more information about the
        status of the instance, see Instance life cycle.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            DEPROVISIONING (428935662):
                The instance is halted and we are performing
                tear down tasks like network deprogramming,
                releasing quota, IP, tearing down disks etc.
            PENDING_STOP (362509770):
                The instance is gracefully shutting down.
            PROVISIONING (290896621):
                Resources are being allocated for the
                instance.
            REPAIRING (413483285):
                The instance is in repair.
            RUNNING (121282975):
                The instance is running.
            STAGING (431072283):
                All required resources have been allocated
                and the instance is being started.
            STOPPED (444276141):
                The instance has stopped successfully.
            STOPPING (350791796):
                The instance is currently stopping (either
                being deleted or killed).
            SUSPENDED (51223995):
                The instance has suspended.
            SUSPENDING (514206246):
                The instance is suspending.
            TERMINATED (250018339):
                The instance has stopped (either by explicit
                action or underlying failure).
        """
        UNDEFINED_STATUS = 0
        DEPROVISIONING = 428935662
        PENDING_STOP = 362509770
        PROVISIONING = 290896621
        REPAIRING = 413483285
        RUNNING = 121282975
        STAGING = 431072283
        STOPPED = 444276141
        STOPPING = 350791796
        SUSPENDED = 51223995
        SUSPENDING = 514206246
        TERMINATED = 250018339

    advanced_machine_features: "AdvancedMachineFeatures" = proto.Field(
        proto.MESSAGE,
        number=409646002,
        optional=True,
        message="AdvancedMachineFeatures",
    )
    can_ip_forward: bool = proto.Field(
        proto.BOOL,
        number=467731324,
        optional=True,
    )
    confidential_instance_config: "ConfidentialInstanceConfig" = proto.Field(
        proto.MESSAGE,
        number=490637685,
        optional=True,
        message="ConfidentialInstanceConfig",
    )
    cpu_platform: str = proto.Field(
        proto.STRING,
        number=410285354,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deletion_protection: bool = proto.Field(
        proto.BOOL,
        number=458014698,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disks: MutableSequence["AttachedDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="AttachedDisk",
    )
    display_device: "DisplayDevice" = proto.Field(
        proto.MESSAGE,
        number=258933875,
        optional=True,
        message="DisplayDevice",
    )
    erase_windows_vss_signature: bool = proto.Field(
        proto.BOOL,
        number=52637562,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    guest_accelerators: MutableSequence["AcceleratorConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=463595119,
        message="AcceleratorConfig",
    )
    hostname: str = proto.Field(
        proto.STRING,
        number=237067315,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instance_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=64741517,
        optional=True,
        message="CustomerEncryptionKey",
    )
    key_revocation_action_type: str = proto.Field(
        proto.STRING,
        number=235941474,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    last_start_timestamp: str = proto.Field(
        proto.STRING,
        number=443830736,
        optional=True,
    )
    last_stop_timestamp: str = proto.Field(
        proto.STRING,
        number=412823010,
        optional=True,
    )
    last_suspended_timestamp: str = proto.Field(
        proto.STRING,
        number=356275337,
        optional=True,
    )
    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
        optional=True,
    )
    metadata: "Metadata" = proto.Field(
        proto.MESSAGE,
        number=86866735,
        optional=True,
        message="Metadata",
    )
    min_cpu_platform: str = proto.Field(
        proto.STRING,
        number=242912759,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network_interfaces: MutableSequence["NetworkInterface"] = proto.RepeatedField(
        proto.MESSAGE,
        number=52735243,
        message="NetworkInterface",
    )
    network_performance_config: "NetworkPerformanceConfig" = proto.Field(
        proto.MESSAGE,
        number=398330850,
        optional=True,
        message="NetworkPerformanceConfig",
    )
    params: "InstanceParams" = proto.Field(
        proto.MESSAGE,
        number=78313862,
        optional=True,
        message="InstanceParams",
    )
    partner_metadata: MutableMapping[str, "StructuredEntries"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=65908934,
        message="StructuredEntries",
    )
    post_key_revocation_action_type: str = proto.Field(
        proto.STRING,
        number=292972897,
        optional=True,
    )
    private_ipv6_google_access: str = proto.Field(
        proto.STRING,
        number=48277006,
        optional=True,
    )
    reservation_affinity: "ReservationAffinity" = proto.Field(
        proto.MESSAGE,
        number=157850683,
        optional=True,
        message="ReservationAffinity",
    )
    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )
    resource_status: "ResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=249429315,
        optional=True,
        message="ResourceStatus",
    )
    satisfies_pzi: bool = proto.Field(
        proto.BOOL,
        number=480964257,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    scheduling: "Scheduling" = proto.Field(
        proto.MESSAGE,
        number=386688404,
        optional=True,
        message="Scheduling",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    service_accounts: MutableSequence["ServiceAccount"] = proto.RepeatedField(
        proto.MESSAGE,
        number=277537328,
        message="ServiceAccount",
    )
    shielded_instance_config: "ShieldedInstanceConfig" = proto.Field(
        proto.MESSAGE,
        number=12862901,
        optional=True,
        message="ShieldedInstanceConfig",
    )
    shielded_instance_integrity_policy: "ShieldedInstanceIntegrityPolicy" = proto.Field(
        proto.MESSAGE,
        number=163696919,
        optional=True,
        message="ShieldedInstanceIntegrityPolicy",
    )
    shielded_vm_config: "ShieldedVmConfig" = proto.Field(
        proto.MESSAGE,
        number=477568019,
        optional=True,
        message="ShieldedVmConfig",
    )
    shielded_vm_integrity_policy: "ShieldedVmIntegrityPolicy" = proto.Field(
        proto.MESSAGE,
        number=140167669,
        optional=True,
        message="ShieldedVmIntegrityPolicy",
    )
    source_machine_image: str = proto.Field(
        proto.STRING,
        number=21769791,
        optional=True,
    )
    source_machine_image_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=192839075,
        optional=True,
        message="CustomerEncryptionKey",
    )
    start_restricted: bool = proto.Field(
        proto.BOOL,
        number=123693144,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    status_message: str = proto.Field(
        proto.STRING,
        number=297428154,
        optional=True,
    )
    tags: "Tags" = proto.Field(
        proto.MESSAGE,
        number=3552281,
        optional=True,
        message="Tags",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InstanceAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.InstancesScopedList]):
            An object that contains a list of instances
            scoped by zone.
        kind (str):
            [Output Only] Type of resource. Always
            compute#instanceAggregatedList for aggregated lists of
            Instance resources.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "InstancesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="InstancesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceConsumptionData(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        consumption_info (google.cloud.compute_v1beta.types.InstanceConsumptionInfo):
            Resources consumed by the instance.

            This field is a member of `oneof`_ ``_consumption_info``.
        instance (str):
            Server-defined URL for the instance.

            This field is a member of `oneof`_ ``_instance``.
    """

    consumption_info: "InstanceConsumptionInfo" = proto.Field(
        proto.MESSAGE,
        number=146354898,
        optional=True,
        message="InstanceConsumptionInfo",
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )


class InstanceConsumptionInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        guest_cpus (int):
            The number of virtual CPUs that are available
            to the instance.

            This field is a member of `oneof`_ ``_guest_cpus``.
        local_ssd_gb (int):
            The amount of local SSD storage available to
            the instance, defined in GiB.

            This field is a member of `oneof`_ ``_local_ssd_gb``.
        memory_mb (int):
            The amount of physical memory available to
            the instance, defined in MiB.

            This field is a member of `oneof`_ ``_memory_mb``.
        min_node_cpus (int):
            The minimal guaranteed number of virtual CPUs
            that are reserved.

            This field is a member of `oneof`_ ``_min_node_cpus``.
    """

    guest_cpus: int = proto.Field(
        proto.INT32,
        number=393356754,
        optional=True,
    )
    local_ssd_gb: int = proto.Field(
        proto.INT32,
        number=329237578,
        optional=True,
    )
    memory_mb: int = proto.Field(
        proto.INT32,
        number=116001171,
        optional=True,
    )
    min_node_cpus: int = proto.Field(
        proto.INT32,
        number=317231675,
        optional=True,
    )


class InstanceGroup(proto.Message):
    r"""Represents an Instance Group resource. Instance Groups can be
    used to configure a target for load balancing. Instance groups
    can either be managed or unmanaged. To create managed instance
    groups, use the instanceGroupManager or
    regionInstanceGroupManager resource instead. Use zonal unmanaged
    instance groups if you need to apply load balancing to groups of
    heterogeneous instances or if you need to manage the instances
    yourself. You cannot create regional unmanaged instance groups.
    For more information, read Instance groups.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] The creation timestamp for this instance group
            in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            [Output Only] The fingerprint of the named ports. The system
            uses this fingerprint to detect conflicts when multiple
            users change the named ports concurrently.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] A unique identifier for this instance group,
            generated by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroup for instance groups.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            The name of the instance group. The name must
            be 1-63 characters long, and comply with
            RFC1035.

            This field is a member of `oneof`_ ``_name``.
        named_ports (MutableSequence[google.cloud.compute_v1beta.types.NamedPort]):
            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.
        network (str):
            [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).

            This field is a member of `oneof`_ ``_network``.
        region (str):
            [Output Only] The URL of the region where the instance group
            is located (for regional resources).

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] The URL for this instance group. The server
            generates this URL.

            This field is a member of `oneof`_ ``_self_link``.
        size (int):
            [Output Only] The total number of instances in the instance
            group.

            This field is a member of `oneof`_ ``_size``.
        subnetwork (str):
            [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).

            This field is a member of `oneof`_ ``_subnetwork``.
        zone (str):
            [Output Only] The URL of the zone where the instance group
            is located (for zonal resources).

            This field is a member of `oneof`_ ``_zone``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    named_ports: MutableSequence["NamedPort"] = proto.RepeatedField(
        proto.MESSAGE,
        number=427598732,
        message="NamedPort",
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    size: int = proto.Field(
        proto.INT32,
        number=3530753,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InstanceGroupAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.InstanceGroupsScopedList]):
            A list of InstanceGroupsScopedList resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupAggregatedList for aggregated lists of
            instance groups.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "InstanceGroupsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroupsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupList(proto.Message):
    r"""A list of InstanceGroup resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroup]):
            A list of InstanceGroup resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupList for instance group lists.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroup",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupManager(proto.Message):
    r"""Represents a Managed Instance Group resource. An instance
    group is a collection of VM instances that you can manage as a
    single entity. For more information, read Instance groups. For
    zonal Managed Instance Group, use the instanceGroupManagers
    resource. For regional Managed Instance Group, use the
    regionInstanceGroupManagers resource.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        all_instances_config (google.cloud.compute_v1beta.types.InstanceGroupManagerAllInstancesConfig):
            Specifies configuration that overrides the
            instance template configuration for the group.

            This field is a member of `oneof`_ ``_all_instances_config``.
        auto_healing_policies (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManagerAutoHealingPolicy]):
            The autohealing policy for this managed
            instance group. You can specify only one value.
        base_instance_name (str):
            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}\])?)>`__

            This field is a member of `oneof`_ ``_base_instance_name``.
        creation_timestamp (str):
            [Output Only] The creation timestamp for this managed
            instance group in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        current_actions (google.cloud.compute_v1beta.types.InstanceGroupManagerActionsSummary):
            [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.

            This field is a member of `oneof`_ ``_current_actions``.
        description (str):
            An optional description of this resource.

            This field is a member of `oneof`_ ``_description``.
        distribution_policy (google.cloud.compute_v1beta.types.DistributionPolicy):
            Policy specifying the intended distribution
            of managed instances across zones in a regional
            managed instance group.

            This field is a member of `oneof`_ ``_distribution_policy``.
        failover_action (str):
            The action to perform in case of zone failure. Only one
            value is supported, NO_FAILOVER. The default is NO_FAILOVER.
            Check the FailoverAction enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_failover_action``.
        fingerprint (str):
            Fingerprint of this resource. This field may
            be used in optimistic locking. It will be
            ignored when inserting an InstanceGroupManager.
            An up-to-date fingerprint must be provided in
            order to update the InstanceGroupManager,
            otherwise the request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve an
            InstanceGroupManager.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] A unique identifier for this resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        instance_flexibility_policy (google.cloud.compute_v1beta.types.InstanceGroupManagerInstanceFlexibilityPolicy):
            Instance flexibility allowing MIG to create
            VMs from multiple types of machines. Instance
            flexibility configuration on MIG overrides
            instance template configuration.

            This field is a member of `oneof`_ ``_instance_flexibility_policy``.
        instance_group (str):
            [Output Only] The URL of the Instance Group resource.

            This field is a member of `oneof`_ ``_instance_group``.
        instance_lifecycle_policy (google.cloud.compute_v1beta.types.InstanceGroupManagerInstanceLifecyclePolicy):
            The repair policy for this managed instance
            group.

            This field is a member of `oneof`_ ``_instance_lifecycle_policy``.
        instance_template (str):
            The URL of the instance template that is
            specified for this managed instance group. The
            group uses this template to create all new
            instances in the managed instance group. The
            templates for existing instances in the group do
            not change unless you run recreateInstances, run
            applyUpdatesToInstances, or set the group's
            updatePolicy.type to PROACTIVE.

            This field is a member of `oneof`_ ``_instance_template``.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupManager for managed instance groups.

            This field is a member of `oneof`_ ``_kind``.
        list_managed_instances_results (str):
            Pagination behavior of the
            listManagedInstances API method for this managed
            instance group. Check the
            ListManagedInstancesResults enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_list_managed_instances_results``.
        multi_mig (str):
            URL to the multi-MIG that this Managed
            Instance Group belongs to.

            This field is a member of `oneof`_ ``_multi_mig``.
        name (str):
            The name of the managed instance group. The
            name must be 1-63 characters long, and comply
            with RFC1035.

            This field is a member of `oneof`_ ``_name``.
        named_ports (MutableSequence[google.cloud.compute_v1beta.types.NamedPort]):
            [Output Only] Named ports configured on the Instance Groups
            complementary to this Instance Group Manager.
        params (google.cloud.compute_v1beta.types.InstanceGroupManagerParams):
            Input only. Additional params passed with the
            request, but not persisted as part of resource
            payload.

            This field is a member of `oneof`_ ``_params``.
        region (str):
            [Output Only] The URL of the region where the managed
            instance group resides (for regional resources).

            This field is a member of `oneof`_ ``_region``.
        resource_policies (google.cloud.compute_v1beta.types.InstanceGroupManagerResourcePolicies):
            Resource policies for this managed instance
            group.

            This field is a member of `oneof`_ ``_resource_policies``.
        satisfies_pzi (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzi``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] The URL for this managed instance group. The
            server defines this URL.

            This field is a member of `oneof`_ ``_self_link``.
        service_account (str):
            The service account to be used as credentials
            for all operations performed by the managed
            instance group on instances. The service
            accounts needs all permissions required to
            create and delete instances. By default, the
            service account
            {projectNumber}@cloudservices.gserviceaccount.com
            is used.

            This field is a member of `oneof`_ ``_service_account``.
        standby_policy (google.cloud.compute_v1beta.types.InstanceGroupManagerStandbyPolicy):
            Standby policy for stopped and suspended
            instances.

            This field is a member of `oneof`_ ``_standby_policy``.
        stateful_policy (google.cloud.compute_v1beta.types.StatefulPolicy):
            Stateful configuration for this Instanced
            Group Manager

            This field is a member of `oneof`_ ``_stateful_policy``.
        status (google.cloud.compute_v1beta.types.InstanceGroupManagerStatus):
            [Output Only] The status of this managed instance group.

            This field is a member of `oneof`_ ``_status``.
        target_pools (MutableSequence[str]):
            The URLs for all TargetPool resources to
            which instances in the instanceGroup field are
            added. The target pools automatically apply to
            all of the instances in the managed instance
            group.
        target_size (int):
            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.

            This field is a member of `oneof`_ ``_target_size``.
        target_size_policy (google.cloud.compute_v1beta.types.InstanceGroupManagerTargetSizePolicy):
            The policy that specifies how the MIG creates
            its VMs to achieve the target size.

            This field is a member of `oneof`_ ``_target_size_policy``.
        target_stopped_size (int):
            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.

            This field is a member of `oneof`_ ``_target_stopped_size``.
        target_suspended_size (int):
            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.

            This field is a member of `oneof`_ ``_target_suspended_size``.
        update_policy (google.cloud.compute_v1beta.types.InstanceGroupManagerUpdatePolicy):
            The update policy for this managed instance
            group.

            This field is a member of `oneof`_ ``_update_policy``.
        versions (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManagerVersion]):
            Specifies the instance templates used by this
            managed instance group to create instances. Each
            version is defined by an instanceTemplate and a
            name. Every version can appear at most once per
            instance group. This field overrides the
            top-level instanceTemplate field. Read more
            about the relationships between these fields.
            Exactly one version must leave the targetSize
            field unset. That version will be applied to all
            remaining instances. For more information, read
            about canary updates.
        zone (str):
            [Output Only] The URL of a zone where the managed instance
            group is located (for zonal resources).

            This field is a member of `oneof`_ ``_zone``.
    """

    class FailoverAction(proto.Enum):
        r"""The action to perform in case of zone failure. Only one value is
        supported, NO_FAILOVER. The default is NO_FAILOVER.

        Values:
            UNDEFINED_FAILOVER_ACTION (0):
                A value indicating that the enum field is not
                set.
            NO_FAILOVER (480957872):
                No description available.
            UNKNOWN (433141802):
                No description available.
        """
        UNDEFINED_FAILOVER_ACTION = 0
        NO_FAILOVER = 480957872
        UNKNOWN = 433141802

    class ListManagedInstancesResults(proto.Enum):
        r"""Pagination behavior of the listManagedInstances API method
        for this managed instance group.

        Values:
            UNDEFINED_LIST_MANAGED_INSTANCES_RESULTS (0):
                A value indicating that the enum field is not
                set.
            PAGELESS (32183464):
                (Default) Pagination is disabled for the
                group's listManagedInstances API method.
                maxResults and pageToken query parameters are
                ignored and all instances are returned in a
                single response.
            PAGINATED (40190637):
                Pagination is enabled for the group's
                listManagedInstances API method. maxResults and
                pageToken query parameters are respected.
        """
        UNDEFINED_LIST_MANAGED_INSTANCES_RESULTS = 0
        PAGELESS = 32183464
        PAGINATED = 40190637

    all_instances_config: "InstanceGroupManagerAllInstancesConfig" = proto.Field(
        proto.MESSAGE,
        number=112596737,
        optional=True,
        message="InstanceGroupManagerAllInstancesConfig",
    )
    auto_healing_policies: MutableSequence[
        "InstanceGroupManagerAutoHealingPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=456799109,
        message="InstanceGroupManagerAutoHealingPolicy",
    )
    base_instance_name: str = proto.Field(
        proto.STRING,
        number=389106439,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    current_actions: "InstanceGroupManagerActionsSummary" = proto.Field(
        proto.MESSAGE,
        number=164045879,
        optional=True,
        message="InstanceGroupManagerActionsSummary",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    distribution_policy: "DistributionPolicy" = proto.Field(
        proto.MESSAGE,
        number=534558541,
        optional=True,
        message="DistributionPolicy",
    )
    failover_action: str = proto.Field(
        proto.STRING,
        number=202248739,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instance_flexibility_policy: "InstanceGroupManagerInstanceFlexibilityPolicy" = (
        proto.Field(
            proto.MESSAGE,
            number=26937090,
            optional=True,
            message="InstanceGroupManagerInstanceFlexibilityPolicy",
        )
    )
    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
        optional=True,
    )
    instance_lifecycle_policy: "InstanceGroupManagerInstanceLifecyclePolicy" = (
        proto.Field(
            proto.MESSAGE,
            number=447961617,
            optional=True,
            message="InstanceGroupManagerInstanceLifecyclePolicy",
        )
    )
    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    list_managed_instances_results: str = proto.Field(
        proto.STRING,
        number=296047156,
        optional=True,
    )
    multi_mig: str = proto.Field(
        proto.STRING,
        number=403990085,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    named_ports: MutableSequence["NamedPort"] = proto.RepeatedField(
        proto.MESSAGE,
        number=427598732,
        message="NamedPort",
    )
    params: "InstanceGroupManagerParams" = proto.Field(
        proto.MESSAGE,
        number=78313862,
        optional=True,
        message="InstanceGroupManagerParams",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    resource_policies: "InstanceGroupManagerResourcePolicies" = proto.Field(
        proto.MESSAGE,
        number=22220385,
        optional=True,
        message="InstanceGroupManagerResourcePolicies",
    )
    satisfies_pzi: bool = proto.Field(
        proto.BOOL,
        number=480964257,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    service_account: str = proto.Field(
        proto.STRING,
        number=199455395,
        optional=True,
    )
    standby_policy: "InstanceGroupManagerStandbyPolicy" = proto.Field(
        proto.MESSAGE,
        number=499352324,
        optional=True,
        message="InstanceGroupManagerStandbyPolicy",
    )
    stateful_policy: "StatefulPolicy" = proto.Field(
        proto.MESSAGE,
        number=47538565,
        optional=True,
        message="StatefulPolicy",
    )
    status: "InstanceGroupManagerStatus" = proto.Field(
        proto.MESSAGE,
        number=181260274,
        optional=True,
        message="InstanceGroupManagerStatus",
    )
    target_pools: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=336072617,
    )
    target_size: int = proto.Field(
        proto.INT32,
        number=62880239,
        optional=True,
    )
    target_size_policy: "InstanceGroupManagerTargetSizePolicy" = proto.Field(
        proto.MESSAGE,
        number=128773506,
        optional=True,
        message="InstanceGroupManagerTargetSizePolicy",
    )
    target_stopped_size: int = proto.Field(
        proto.INT32,
        number=2419489,
        optional=True,
    )
    target_suspended_size: int = proto.Field(
        proto.INT32,
        number=308085843,
        optional=True,
    )
    update_policy: "InstanceGroupManagerUpdatePolicy" = proto.Field(
        proto.MESSAGE,
        number=175809896,
        optional=True,
        message="InstanceGroupManagerUpdatePolicy",
    )
    versions: MutableSequence["InstanceGroupManagerVersion"] = proto.RepeatedField(
        proto.MESSAGE,
        number=162430619,
        message="InstanceGroupManagerVersion",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InstanceGroupManagerActionsSummary(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        abandoning (int):
            [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.

            This field is a member of `oneof`_ ``_abandoning``.
        creating (int):
            [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.

            This field is a member of `oneof`_ ``_creating``.
        creating_without_retries (int):
            [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.

            This field is a member of `oneof`_ ``_creating_without_retries``.
        deleting (int):
            [Output Only] The number of instances in the managed
            instance group that are scheduled to be deleted or are
            currently being deleted.

            This field is a member of `oneof`_ ``_deleting``.
        none (int):
            [Output Only] The number of instances in the managed
            instance group that are running and have no scheduled
            actions.

            This field is a member of `oneof`_ ``_none``.
        recreating (int):
            [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.

            This field is a member of `oneof`_ ``_recreating``.
        refreshing (int):
            [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.

            This field is a member of `oneof`_ ``_refreshing``.
        restarting (int):
            [Output Only] The number of instances in the managed
            instance group that are scheduled to be restarted or are
            currently being restarted.

            This field is a member of `oneof`_ ``_restarting``.
        resuming (int):
            [Output Only] The number of instances in the managed
            instance group that are scheduled to be resumed or are
            currently being resumed.

            This field is a member of `oneof`_ ``_resuming``.
        starting (int):
            [Output Only] The number of instances in the managed
            instance group that are scheduled to be started or are
            currently being started.

            This field is a member of `oneof`_ ``_starting``.
        stopping (int):
            [Output Only] The number of instances in the managed
            instance group that are scheduled to be stopped or are
            currently being stopped.

            This field is a member of `oneof`_ ``_stopping``.
        suspending (int):
            [Output Only] The number of instances in the managed
            instance group that are scheduled to be suspended or are
            currently being suspended.

            This field is a member of `oneof`_ ``_suspending``.
        verifying (int):
            [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.

            This field is a member of `oneof`_ ``_verifying``.
    """

    abandoning: int = proto.Field(
        proto.INT32,
        number=440023373,
        optional=True,
    )
    creating: int = proto.Field(
        proto.INT32,
        number=209809081,
        optional=True,
    )
    creating_without_retries: int = proto.Field(
        proto.INT32,
        number=369916745,
        optional=True,
    )
    deleting: int = proto.Field(
        proto.INT32,
        number=282846120,
        optional=True,
    )
    none: int = proto.Field(
        proto.INT32,
        number=3387192,
        optional=True,
    )
    recreating: int = proto.Field(
        proto.INT32,
        number=339057132,
        optional=True,
    )
    refreshing: int = proto.Field(
        proto.INT32,
        number=215044903,
        optional=True,
    )
    restarting: int = proto.Field(
        proto.INT32,
        number=372312947,
        optional=True,
    )
    resuming: int = proto.Field(
        proto.INT32,
        number=201100714,
        optional=True,
    )
    starting: int = proto.Field(
        proto.INT32,
        number=243064896,
        optional=True,
    )
    stopping: int = proto.Field(
        proto.INT32,
        number=105035892,
        optional=True,
    )
    suspending: int = proto.Field(
        proto.INT32,
        number=29113894,
        optional=True,
    )
    verifying: int = proto.Field(
        proto.INT32,
        number=451612873,
        optional=True,
    )


class InstanceGroupManagerAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.InstanceGroupManagersScopedList]):
            A list of InstanceGroupManagersScopedList
            resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupManagerAggregatedList for an aggregated
            list of managed instance groups.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "InstanceGroupManagersScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroupManagersScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupManagerAllInstancesConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        properties (google.cloud.compute_v1beta.types.InstancePropertiesPatch):
            Properties to set on all instances in the
            group. You can add or modify properties using
            the instanceGroupManagers.patch or
            regionInstanceGroupManagers.patch. After setting
            allInstancesConfig on the group, you must update
            the group's instances to apply the
            configuration. To apply the configuration, set
            the group's updatePolicy.type field to use
            proactive updates or use the
            applyUpdatesToInstances method.

            This field is a member of `oneof`_ ``_properties``.
    """

    properties: "InstancePropertiesPatch" = proto.Field(
        proto.MESSAGE,
        number=147688755,
        optional=True,
        message="InstancePropertiesPatch",
    )


class InstanceGroupManagerAutoHealingPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):
            The URL for the health check that signals
            autohealing.

            This field is a member of `oneof`_ ``_health_check``.
        initial_delay_sec (int):
            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.

            This field is a member of `oneof`_ ``_initial_delay_sec``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
        optional=True,
    )
    initial_delay_sec: int = proto.Field(
        proto.INT32,
        number=263207002,
        optional=True,
    )


class InstanceGroupManagerInstanceFlexibilityPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_selections (MutableMapping[str, google.cloud.compute_v1beta.types.InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection]):
            Named instance selections configuring
            properties that the group will use when creating
            new VMs.
        provisioning_model_mix (google.cloud.compute_v1beta.types.InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix):
            Provisioning model configuration used by this
            managed instance group to create instances.

            This field is a member of `oneof`_ ``_provisioning_model_mix``.
    """

    instance_selections: MutableMapping[
        str, "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=22954577,
        message="InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection",
    )
    provisioning_model_mix: "InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix" = proto.Field(
        proto.MESSAGE,
        number=272686452,
        optional=True,
        message="InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix",
    )


class InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        machine_types (MutableSequence[str]):
            Full machine-type names, e.g.
            "n1-standard-16".
        rank (int):
            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.

            This field is a member of `oneof`_ ``_rank``.
    """

    machine_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=79720065,
    )
    rank: int = proto.Field(
        proto.INT32,
        number=3492908,
        optional=True,
    )


class InstanceGroupManagerInstanceFlexibilityPolicyProvisioningModelMix(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        standard_capacity_base (int):
            The base capacity that will always use Standard VMs to avoid
            risk of more preemption than the minimum capacity user
            needs. MIG will create only Standard VMs until it reaches
            standard_capacity_base and only then will start using
            standard_capacity_percent_above_base to mix Spot with
            Standard VMs.

            This field is a member of `oneof`_ ``_standard_capacity_base``.
        standard_capacity_percent_above_base (int):
            The percentage of target capacity that should use Standard
            VM. The remaining percentage will use Spot VMs. The
            percentage applies only to the capacity above
            standard_capacity_base.

            This field is a member of `oneof`_ ``_standard_capacity_percent_above_base``.
    """

    standard_capacity_base: int = proto.Field(
        proto.INT32,
        number=388067636,
        optional=True,
    )
    standard_capacity_percent_above_base: int = proto.Field(
        proto.INT32,
        number=401038224,
        optional=True,
    )


class InstanceGroupManagerInstanceLifecyclePolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        default_action_on_failure (str):
            The action that a MIG performs on a failed VM. If the value
            of the onFailedHealthCheck field is ``DEFAULT_ACTION``, then
            the same action also applies to the VMs on which your
            application fails a health check. Valid values are - REPAIR
            (default): MIG automatically repairs a failed VM by
            recreating it. For more information, see About repairing VMs
            in a MIG. - DO_NOTHING: MIG does not repair a failed VM.
            Check the DefaultActionOnFailure enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_default_action_on_failure``.
        force_update_on_repair (str):
            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. Check the
            ForceUpdateOnRepair enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_force_update_on_repair``.
        on_failed_health_check (str):
            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.
            Check the OnFailedHealthCheck enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_on_failed_health_check``.
    """

    class DefaultActionOnFailure(proto.Enum):
        r"""The action that a MIG performs on a failed VM. If the value of the
        onFailedHealthCheck field is ``DEFAULT_ACTION``, then the same
        action also applies to the VMs on which your application fails a
        health check. Valid values are - REPAIR (default): MIG automatically
        repairs a failed VM by recreating it. For more information, see
        About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a
        failed VM. Additional supported values which may be not listed in
        the enum directly due to technical reasons: DO_NOTHING REPAIR

        Values:
            UNDEFINED_DEFAULT_ACTION_ON_FAILURE (0):
                A value indicating that the enum field is not
                set.
            DELETE (402225579):
                MIG deletes a failed or an unhealthy VM.
                Deleting the VM decreases the target size of the
                MIG.
            DO_NOTHING (451307513):
                No description available.
            REPAIR (266277773):
                No description available.
        """
        UNDEFINED_DEFAULT_ACTION_ON_FAILURE = 0
        DELETE = 402225579
        DO_NOTHING = 451307513
        REPAIR = 266277773

    class ForceUpdateOnRepair(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_FORCE_UPDATE_ON_REPAIR (0):
                A value indicating that the enum field is not
                set.
            NO (2497):
                No description available.
            YES (87751):
                No description available.
        """
        UNDEFINED_FORCE_UPDATE_ON_REPAIR = 0
        NO = 2497
        YES = 87751

    class OnFailedHealthCheck(proto.Enum):
        r"""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. Additional supported
        values which may be not listed in the enum directly due to technical
        reasons: DO_NOTHING REPAIR

        Values:
            UNDEFINED_ON_FAILED_HEALTH_CHECK (0):
                A value indicating that the enum field is not
                set.
            DEFAULT_ACTION (463967764):
                (Default) MIG uses the same action configured
                for
                instanceLifecyclePolicy.defaultActionOnFailure
                field.
        """
        UNDEFINED_ON_FAILED_HEALTH_CHECK = 0
        DEFAULT_ACTION = 463967764

    default_action_on_failure: str = proto.Field(
        proto.STRING,
        number=61383253,
        optional=True,
    )
    force_update_on_repair: str = proto.Field(
        proto.STRING,
        number=356302027,
        optional=True,
    )
    on_failed_health_check: str = proto.Field(
        proto.STRING,
        number=39807943,
        optional=True,
    )


class InstanceGroupManagerList(proto.Message):
    r"""[Output Only] A list of managed instance groups.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManager]):
            A list of InstanceGroupManager resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupManagerList for a list of managed
            instance groups.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceGroupManager"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroupManager",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupManagerParams(proto.Message):
    r"""Input only additional params for instance group manager
    creation.

    Attributes:
        resource_manager_tags (MutableMapping[str, str]):
            Resource manager tags to bind to the managed
            instance group. The tags are key-value pairs.
            Keys must be in the format tagKeys/123 and
            values in the format tagValues/456. For more
            information, see Manage tags for resources.
    """

    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )


class InstanceGroupManagerResizeRequest(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        count (int):
            This field is deprecated, please use resize_by instead. The
            count of instances to create as part of this resize request.

            This field is a member of `oneof`_ ``_count``.
        creation_timestamp (str):
            [Output Only] The creation timestamp for this resize request
            in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] A unique identifier for this resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        instances (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            The names of instances to be created by this resize request.
            The number of names specified determines the number of
            instances to create. The group's target size will be
            increased by this number. This field cannot be used together
            with 'resize_by'.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupManagerResizeRequest for resize
            requests.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            The name of this resize request. The name
            must be 1-63 characters long, and comply with
            RFC1035.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [Output Only] The URL of a region where the resize request
            is located. Populated only for regional resize requests.

            This field is a member of `oneof`_ ``_region``.
        requested_run_duration (google.cloud.compute_v1beta.types.Duration):
            Requested run duration for instances that
            will be created by this request. At the end of
            the run duration instance will be deleted.

            This field is a member of `oneof`_ ``_requested_run_duration``.
        resize_by (int):
            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'.

            This field is a member of `oneof`_ ``_resize_by``.
        self_link (str):
            [Output Only] The URL for this resize request. The server
            defines this URL.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        state (str):
            [Output only] Current state of the request. Check the State
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
        status (google.cloud.compute_v1beta.types.InstanceGroupManagerResizeRequestStatus):
            [Output only] Status of the request.

            This field is a member of `oneof`_ ``_status``.
        zone (str):
            [Output Only] The URL of a zone where the resize request is
            located. Populated only for zonal resize requests.

            This field is a member of `oneof`_ ``_zone``.
    """

    class State(proto.Enum):
        r"""[Output only] Current state of the request.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACCEPTED (246714279):
                The request was created successfully and was
                accepted for provisioning when the capacity
                becomes available.
            CANCELLED (41957681):
                The request is cancelled.
            CREATING (455564985):
                Resize request is being created and may still
                fail creation.
            FAILED (455706685):
                The request failed before or during
                provisioning. If the request fails during
                provisioning, any VMs that were created during
                provisioning are rolled back and removed from
                the MIG.
            PROVISIONING (290896621):
                The value is deprecated. ResizeRequests would
                stay in the ACCEPTED state during provisioning
                attempts. The target resource(s) are being
                provisioned.
            STATE_UNSPECIFIED (470755401):
                Default value. This value should never be
                returned.
            SUCCEEDED (511103553):
                The request succeeded.
        """
        UNDEFINED_STATE = 0
        ACCEPTED = 246714279
        CANCELLED = 41957681
        CREATING = 455564985
        FAILED = 455706685
        PROVISIONING = 290896621
        STATE_UNSPECIFIED = 470755401
        SUCCEEDED = 511103553

    count: int = proto.Field(
        proto.INT32,
        number=94851343,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instances: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="PerInstanceConfig",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    requested_run_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=232146425,
        optional=True,
        message="Duration",
    )
    resize_by: int = proto.Field(
        proto.INT32,
        number=533735362,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    status: "InstanceGroupManagerResizeRequestStatus" = proto.Field(
        proto.MESSAGE,
        number=181260274,
        optional=True,
        message="InstanceGroupManagerResizeRequestStatus",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InstanceGroupManagerResizeRequestStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        error (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_error``.
        last_attempt (google.cloud.compute_v1beta.types.InstanceGroupManagerResizeRequestStatusLastAttempt):
            [Output only] Information about the last attempt to fulfill
            the request. The value is temporary since the ResizeRequest
            can retry, as long as it's still active and the last attempt
            value can either be cleared or replaced with a different
            error. Since ResizeRequest retries infrequently, the value
            may be stale and no longer show an active problem. The value
            is cleared when ResizeRequest transitions to the final state
            (becomes inactive). If the final state is FAILED the error
            describing it will be storred in the "error" field only.

            This field is a member of `oneof`_ ``_last_attempt``.
    """

    error: "Error" = proto.Field(
        proto.MESSAGE,
        number=96784904,
        optional=True,
        message="Error",
    )
    last_attempt: "InstanceGroupManagerResizeRequestStatusLastAttempt" = proto.Field(
        proto.MESSAGE,
        number=434771492,
        optional=True,
        message="InstanceGroupManagerResizeRequestStatusLastAttempt",
    )


class InstanceGroupManagerResizeRequestStatusLastAttempt(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        error (google.cloud.compute_v1beta.types.Error):
            Errors that prevented the ResizeRequest to be
            fulfilled.

            This field is a member of `oneof`_ ``_error``.
    """

    error: "Error" = proto.Field(
        proto.MESSAGE,
        number=96784904,
        optional=True,
        message="Error",
    )


class InstanceGroupManagerResizeRequestsListResponse(proto.Message):
    r"""[Output Only] A list of resize requests.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManagerResizeRequest]):
            A list of resize request resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#instanceGroupManagerResizeRequestList for a list of
            resize requests.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceGroupManagerResizeRequest"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroupManagerResizeRequest",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupManagerResourcePolicies(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        workload_policy (str):
            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

            This field is a member of `oneof`_ ``_workload_policy``.
    """

    workload_policy: str = proto.Field(
        proto.STRING,
        number=114721530,
        optional=True,
    )


class InstanceGroupManagerStandbyPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        initial_delay_sec (int):
            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.

            This field is a member of `oneof`_ ``_initial_delay_sec``.
        mode (str):
            Defines how a MIG resumes or starts VMs from a standby pool
            when the group scales out. The default mode is ``MANUAL``.
            Check the Mode enum for the list of possible values.

            This field is a member of `oneof`_ ``_mode``.
    """

    class Mode(proto.Enum):
        r"""Defines how a MIG resumes or starts VMs from a standby pool when the
        group scales out. The default mode is ``MANUAL``.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            MANUAL (119397318):
                MIG does not automatically resume or start
                VMs in the standby pool when the group scales
                out.
            SCALE_OUT_POOL (635394):
                MIG automatically resumes or starts VMs in
                the standby pool when the group scales out, and
                replenishes the standby pool afterwards.
        """
        UNDEFINED_MODE = 0
        MANUAL = 119397318
        SCALE_OUT_POOL = 635394

    initial_delay_sec: int = proto.Field(
        proto.INT32,
        number=263207002,
        optional=True,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )


class InstanceGroupManagerStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        all_instances_config (google.cloud.compute_v1beta.types.InstanceGroupManagerStatusAllInstancesConfig):
            [Output only] Status of all-instances configuration on the
            group.

            This field is a member of `oneof`_ ``_all_instances_config``.
        autoscaler (str):
            [Output Only] The URL of the Autoscaler that targets this
            instance group manager.

            This field is a member of `oneof`_ ``_autoscaler``.
        bulk_instance_operation (google.cloud.compute_v1beta.types.InstanceGroupManagerStatusBulkInstanceOperation):
            [Output Only] The status of bulk instance operation.

            This field is a member of `oneof`_ ``_bulk_instance_operation``.
        is_stable (bool):
            [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.

            This field is a member of `oneof`_ ``_is_stable``.
        stateful (google.cloud.compute_v1beta.types.InstanceGroupManagerStatusStateful):
            [Output Only] Stateful status of the given Instance Group
            Manager.

            This field is a member of `oneof`_ ``_stateful``.
        version_target (google.cloud.compute_v1beta.types.InstanceGroupManagerStatusVersionTarget):
            [Output Only] A status of consistency of Instances' versions
            with their target version specified by version field on
            Instance Group Manager.

            This field is a member of `oneof`_ ``_version_target``.
    """

    all_instances_config: "InstanceGroupManagerStatusAllInstancesConfig" = proto.Field(
        proto.MESSAGE,
        number=112596737,
        optional=True,
        message="InstanceGroupManagerStatusAllInstancesConfig",
    )
    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
        optional=True,
    )
    bulk_instance_operation: "InstanceGroupManagerStatusBulkInstanceOperation" = (
        proto.Field(
            proto.MESSAGE,
            number=501667466,
            optional=True,
            message="InstanceGroupManagerStatusBulkInstanceOperation",
        )
    )
    is_stable: bool = proto.Field(
        proto.BOOL,
        number=108410864,
        optional=True,
    )
    stateful: "InstanceGroupManagerStatusStateful" = proto.Field(
        proto.MESSAGE,
        number=244462412,
        optional=True,
        message="InstanceGroupManagerStatusStateful",
    )
    version_target: "InstanceGroupManagerStatusVersionTarget" = proto.Field(
        proto.MESSAGE,
        number=289386200,
        optional=True,
        message="InstanceGroupManagerStatusVersionTarget",
    )


class InstanceGroupManagerStatusAllInstancesConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        current_revision (str):
            [Output Only] Current all-instances configuration revision.
            This value is in RFC3339 text format.

            This field is a member of `oneof`_ ``_current_revision``.
        effective (bool):
            [Output Only] A bit indicating whether this configuration
            has been applied to all managed instances in the group.

            This field is a member of `oneof`_ ``_effective``.
    """

    current_revision: str = proto.Field(
        proto.STRING,
        number=38355937,
        optional=True,
    )
    effective: bool = proto.Field(
        proto.BOOL,
        number=141961639,
        optional=True,
    )


class InstanceGroupManagerStatusBulkInstanceOperation(proto.Message):
    r"""Bulk instance operation is the creation of VMs in a MIG when
    the targetSizePolicy.mode is set to BULK.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        in_progress (bool):
            [Output Only] Informs whether bulk instance operation is in
            progress.

            This field is a member of `oneof`_ ``_in_progress``.
        last_progress_check (google.cloud.compute_v1beta.types.InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck):
            [Output Only] Information from the last progress check of
            bulk instance operation.

            This field is a member of `oneof`_ ``_last_progress_check``.
    """

    in_progress: bool = proto.Field(
        proto.BOOL,
        number=320200711,
        optional=True,
    )
    last_progress_check: "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck" = proto.Field(
        proto.MESSAGE,
        number=208638271,
        optional=True,
        message="InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck",
    )


class InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        error (google.cloud.compute_v1beta.types.Error):
            [Output Only] Errors encountered during bulk instance
            operation.

            This field is a member of `oneof`_ ``_error``.
        timestamp (str):
            [Output Only] Timestamp of the last progress check of bulk
            instance operation. Timestamp is in RFC3339 text format.

            This field is a member of `oneof`_ ``_timestamp``.
    """

    error: "Error" = proto.Field(
        proto.MESSAGE,
        number=96784904,
        optional=True,
        message="Error",
    )
    timestamp: str = proto.Field(
        proto.STRING,
        number=55126294,
        optional=True,
    )


class InstanceGroupManagerStatusStateful(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        has_stateful_config (bool):
            [Output Only] A bit indicating whether the managed instance
            group has stateful configuration, that is, if you have
            configured any items in a stateful policy or in per-instance
            configs. The group might report that it has no stateful
            configuration even when there is still some preserved state
            on a managed instance, for example, if you have deleted all
            PICs but not yet applied those deletions.

            This field is a member of `oneof`_ ``_has_stateful_config``.
        is_stateful (bool):
            [Output Only] A bit indicating whether the managed instance
            group has stateful configuration, that is, if you have
            configured any items in a stateful policy or in per-instance
            configs. The group might report that it has no stateful
            configuration even when there is still some preserved state
            on a managed instance, for example, if you have deleted all
            PICs but not yet applied those deletions. This field is
            deprecated in favor of has_stateful_config.

            This field is a member of `oneof`_ ``_is_stateful``.
        per_instance_configs (google.cloud.compute_v1beta.types.InstanceGroupManagerStatusStatefulPerInstanceConfigs):
            [Output Only] Status of per-instance configurations on the
            instances.

            This field is a member of `oneof`_ ``_per_instance_configs``.
    """

    has_stateful_config: bool = proto.Field(
        proto.BOOL,
        number=110474224,
        optional=True,
    )
    is_stateful: bool = proto.Field(
        proto.BOOL,
        number=46302913,
        optional=True,
    )
    per_instance_configs: "InstanceGroupManagerStatusStatefulPerInstanceConfigs" = (
        proto.Field(
            proto.MESSAGE,
            number=526265001,
            optional=True,
            message="InstanceGroupManagerStatusStatefulPerInstanceConfigs",
        )
    )


class InstanceGroupManagerStatusStatefulPerInstanceConfigs(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        all_effective (bool):
            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.

            This field is a member of `oneof`_ ``_all_effective``.
    """

    all_effective: bool = proto.Field(
        proto.BOOL,
        number=516540553,
        optional=True,
    )


class InstanceGroupManagerStatusVersionTarget(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        is_reached (bool):
            [Output Only] A bit indicating whether version target has
            been reached in this managed instance group, i.e. all
            instances are in their target version. Instances' target
            version are specified by version field on Instance Group
            Manager.

            This field is a member of `oneof`_ ``_is_reached``.
    """

    is_reached: bool = proto.Field(
        proto.BOOL,
        number=433209149,
        optional=True,
    )


class InstanceGroupManagerTargetSizePolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        mode (str):
            The mode of target size policy based on which
            the MIG creates its VMs individually or all at
            once. Check the Mode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_mode``.
    """

    class Mode(proto.Enum):
        r"""The mode of target size policy based on which the MIG creates
        its VMs individually or all at once.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            BULK (2050322):
                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 (438800025):
                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 (53715403):
                If mode is unspecified, MIG will behave as in the default
                ``INDIVIDUAL`` mode.
        """
        UNDEFINED_MODE = 0
        BULK = 2050322
        INDIVIDUAL = 438800025
        UNSPECIFIED_MODE = 53715403

    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )


class InstanceGroupManagerUpdatePolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_redistribution_type (str):
            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. Check the
            InstanceRedistributionType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_instance_redistribution_type``.
        max_surge (google.cloud.compute_v1beta.types.FixedOrPercent):
            The maximum number of instances that can be
            created above the specified targetSize during
            the update process. This value can be either a
            fixed number or, if the group has 10 or more
            instances, a percentage. If you set a
            percentage, the number of instances is rounded
            if necessary. The default value for maxSurge is
            a fixed value equal to the number of zones in
            which the managed instance group operates. At
            least one of either maxSurge or maxUnavailable
            must be greater than 0. Learn more about
            maxSurge.

            This field is a member of `oneof`_ ``_max_surge``.
        max_unavailable (google.cloud.compute_v1beta.types.FixedOrPercent):
            The maximum number of instances that can be
            unavailable during the update process. An
            instance is considered available if all of the
            following conditions are satisfied: - The
            instance's status is RUNNING. - If there is a
            health check on the instance group, the
            instance's health check status must be HEALTHY
            at least once. If there is no health check on
            the group, then the instance only needs to have
            a status of RUNNING to be considered available.
            This value can be either a fixed number or, if
            the group has 10 or more instances, a
            percentage. If you set a percentage, the number
            of instances is rounded if necessary. The
            default value for maxUnavailable is a fixed
            value equal to the number of zones in which the
            managed instance group operates. At least one of
            either maxSurge or maxUnavailable must be
            greater than 0. Learn more about maxUnavailable.

            This field is a member of `oneof`_ ``_max_unavailable``.
        min_ready_sec (int):
            Minimum number of seconds to wait for after a newly created
            instance becomes available. This value must be from range
            [0, 3600].

            This field is a member of `oneof`_ ``_min_ready_sec``.
        minimal_action (str):
            Minimal action to be taken on an instance.
            Use this option to minimize disruption as much
            as possible or to apply a more disruptive action
            than is necessary. - To limit disruption as much
            as possible, set the minimal action to REFRESH.
            If your update requires a more disruptive
            action, Compute Engine performs the necessary
            action to execute the update. - To apply a more
            disruptive action than is strictly necessary,
            set the minimal action to RESTART or REPLACE.
            For example, Compute Engine does not need to
            restart a VM to change its metadata. But if your
            application reads instance metadata only when a
            VM is restarted, you can set the minimal action
            to RESTART in order to pick up metadata changes.
            Check the MinimalAction enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_minimal_action``.
        most_disruptive_allowed_action (str):
            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. Check the
            MostDisruptiveAllowedAction enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_most_disruptive_allowed_action``.
        replacement_method (str):
            What action should be used to replace instances. See
            minimal_action.REPLACE Check the ReplacementMethod enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_replacement_method``.
        type_ (str):
            The type of update process. You can specify
            either PROACTIVE so that the MIG automatically
            updates VMs to the latest configurations or
            OPPORTUNISTIC so that you can select the VMs
            that you want to update. Check the Type enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class InstanceRedistributionType(proto.Enum):
        r"""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. Additional supported
        values which may be not listed in the enum directly due to
        technical reasons:

        NONE
        PROACTIVE

        Values:
            UNDEFINED_INSTANCE_REDISTRIBUTION_TYPE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_INSTANCE_REDISTRIBUTION_TYPE = 0

    class MinimalAction(proto.Enum):
        r"""Minimal action to be taken on an instance. Use this option to
        minimize disruption as much as possible or to apply a more
        disruptive action than is necessary. - To limit disruption as
        much as possible, set the minimal action to REFRESH. If your
        update requires a more disruptive action, Compute Engine
        performs the necessary action to execute the update. - To apply
        a more disruptive action than is strictly necessary, set the
        minimal action to RESTART or REPLACE. For example, Compute
        Engine does not need to restart a VM to change its metadata. But
        if your application reads instance metadata only when a VM is
        restarted, you can set the minimal action to RESTART in order to
        pick up metadata changes. Additional supported values which may
        be not listed in the enum directly due to technical reasons:

        NONE
        REFRESH
        REPLACE
        RESTART

        Values:
            UNDEFINED_MINIMAL_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MINIMAL_ACTION = 0

    class MostDisruptiveAllowedAction(proto.Enum):
        r"""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.
        Additional supported values which may be not listed in the enum
        directly due to technical reasons:

        NONE
        REFRESH
        REPLACE
        RESTART

        Values:
            UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0

    class ReplacementMethod(proto.Enum):
        r"""What action should be used to replace instances. See
        minimal_action.REPLACE

        Values:
            UNDEFINED_REPLACEMENT_METHOD (0):
                A value indicating that the enum field is not
                set.
            RECREATE (522644719):
                Instances will be recreated (with the same
                name)
            SUBSTITUTE (280924314):
                Default option: instances will be deleted and
                created (with a new name)
        """
        UNDEFINED_REPLACEMENT_METHOD = 0
        RECREATE = 522644719
        SUBSTITUTE = 280924314

    class Type(proto.Enum):
        r"""The type of update process. You can specify either PROACTIVE
        so that the MIG automatically updates VMs to the latest
        configurations or OPPORTUNISTIC so that you can select the VMs
        that you want to update. Additional supported values which may
        be not listed in the enum directly due to technical reasons:

        PROACTIVE

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            OPPORTUNISTIC (429530089):
                MIG will apply new configurations to existing
                VMs only when you selectively target specific or
                all VMs to be updated.
        """
        UNDEFINED_TYPE = 0
        OPPORTUNISTIC = 429530089

    instance_redistribution_type: str = proto.Field(
        proto.STRING,
        number=292630424,
        optional=True,
    )
    max_surge: "FixedOrPercent" = proto.Field(
        proto.MESSAGE,
        number=302572691,
        optional=True,
        message="FixedOrPercent",
    )
    max_unavailable: "FixedOrPercent" = proto.Field(
        proto.MESSAGE,
        number=404940277,
        optional=True,
        message="FixedOrPercent",
    )
    min_ready_sec: int = proto.Field(
        proto.INT32,
        number=372481544,
        optional=True,
    )
    minimal_action: str = proto.Field(
        proto.STRING,
        number=270567060,
        optional=True,
    )
    most_disruptive_allowed_action: str = proto.Field(
        proto.STRING,
        number=66103053,
        optional=True,
    )
    replacement_method: str = proto.Field(
        proto.STRING,
        number=505931694,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class InstanceGroupManagerVersion(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            The URL of the instance template that is specified for this
            managed instance group. The group uses this template to
            create new instances in the managed instance group until the
            ``targetSize`` for this version is reached. The templates
            for existing instances in the group do not change unless you
            run recreateInstances, run applyUpdatesToInstances, or set
            the group's updatePolicy.type to PROACTIVE; in those cases,
            existing instances are updated until the ``targetSize`` for
            this version is reached.

            This field is a member of `oneof`_ ``_instance_template``.
        name (str):
            Name of the version. Unique among all
            versions in the scope of this managed instance
            group.

            This field is a member of `oneof`_ ``_name``.
        target_size (google.cloud.compute_v1beta.types.FixedOrPercent):
            Specifies the intended number of instances to be created
            from the instanceTemplate. The final number of instances
            created from the template will be equal to: - If expressed
            as a fixed number, the minimum of either targetSize.fixed or
            instanceGroupManager.targetSize is used. - if expressed as a
            percent, the targetSize would be (targetSize.percent/100 \*
            InstanceGroupManager.targetSize) If there is a remainder,
            the number is rounded. If unset, this version will update
            any remaining instances not updated by another version. Read
            Starting a canary update for more information.

            This field is a member of `oneof`_ ``_target_size``.
    """

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    target_size: "FixedOrPercent" = proto.Field(
        proto.MESSAGE,
        number=62880239,
        optional=True,
        message="FixedOrPercent",
    )


class InstanceGroupManagersAbandonInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class InstanceGroupManagersApplyUpdatesRequest(proto.Message):
    r"""InstanceGroupManagers.applyUpdatesToInstances

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        all_instances (bool):
            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.

            This field is a member of `oneof`_ ``_all_instances``.
        instances (MutableSequence[str]):
            The list of URLs of one or more instances for which you want
            to apply updates. Each URL can be a full URL or a partial
            URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
        minimal_action (str):
            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. Check the MinimalAction enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_minimal_action``.
        most_disruptive_allowed_action (str):
            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. Check the MostDisruptiveAllowedAction
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_most_disruptive_allowed_action``.
    """

    class MinimalAction(proto.Enum):
        r"""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. Additional
        supported values which may be not listed in the enum directly
        due to technical reasons:

        NONE
        REFRESH
        REPLACE
        RESTART

        Values:
            UNDEFINED_MINIMAL_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MINIMAL_ACTION = 0

    class MostDisruptiveAllowedAction(proto.Enum):
        r"""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. Additional supported
        values which may be not listed in the enum directly due to
        technical reasons:

        NONE
        REFRESH
        REPLACE
        RESTART

        Values:
            UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0

    all_instances: bool = proto.Field(
        proto.BOOL,
        number=403676512,
        optional=True,
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )
    minimal_action: str = proto.Field(
        proto.STRING,
        number=270567060,
        optional=True,
    )
    most_disruptive_allowed_action: str = proto.Field(
        proto.STRING,
        number=66103053,
        optional=True,
    )


class InstanceGroupManagersCreateInstancesRequest(proto.Message):
    r"""InstanceGroupManagers.createInstances

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            [Required] List of specifications of per-instance configs.
    """

    instances: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="PerInstanceConfig",
    )


class InstanceGroupManagersDeleteInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instances (MutableSequence[str]):
            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.
        skip_instances_on_validation_error (bool):
            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.

            This field is a member of `oneof`_ ``_skip_instances_on_validation_error``.
    """

    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )
    skip_instances_on_validation_error: bool = proto.Field(
        proto.BOOL,
        number=40631073,
        optional=True,
    )


class InstanceGroupManagersDeletePerInstanceConfigsReq(proto.Message):
    r"""InstanceGroupManagers.deletePerInstanceConfigs

    Attributes:
        names (MutableSequence[str]):
            The list of instance names for which we want
            to delete per-instance configs on this managed
            instance group.
    """

    names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=104585032,
    )


class InstanceGroupManagersListErrorsResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceManagedByIgmError]):
            [Output Only] The list of errors of the managed instance
            group.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
    """

    @property
    def raw_page(self):
        return self

    items: MutableSequence["InstanceManagedByIgmError"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceManagedByIgmError",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )


class InstanceGroupManagersListManagedInstancesResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        managed_instances (MutableSequence[google.cloud.compute_v1beta.types.ManagedInstance]):
            [Output Only] The list of instances in the managed instance
            group.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
    """

    @property
    def raw_page(self):
        return self

    managed_instances: MutableSequence["ManagedInstance"] = proto.RepeatedField(
        proto.MESSAGE,
        number=336219614,
        message="ManagedInstance",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )


class InstanceGroupManagersListPerInstanceConfigsResp(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        items (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            [Output Only] The list of PerInstanceConfig.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    items: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="PerInstanceConfig",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupManagersPatchPerInstanceConfigsReq(proto.Message):
    r"""InstanceGroupManagers.patchPerInstanceConfigs

    Attributes:
        per_instance_configs (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            The list of per-instance configurations to
            insert or patch on this managed instance group.
    """

    per_instance_configs: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=526265001,
        message="PerInstanceConfig",
    )


class InstanceGroupManagersRecreateInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class InstanceGroupManagersResizeAdvancedRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        no_creation_retries (bool):
            If this flag is true, the managed instance
            group attempts to create all instances initiated
            by this resize request only once. If there is an
            error during creation, the managed instance
            group does not retry create this instance, and
            we will decrease the targetSize of the request
            instead. If the flag is false, the group
            attempts to recreate each instance continuously
            until it succeeds. This flag matters only in the
            first attempt of creation of an instance. After
            an instance is successfully created while this
            flag is enabled, the instance behaves the same
            way as all the other instances created with a
            regular resize request. In particular, if a
            running instance dies unexpectedly at a later
            time and needs to be recreated, this mode does
            not affect the recreation behavior in that
            scenario. This flag is applicable only to the
            current resize request. It does not influence
            other resize requests in any way. You can see
            which instances is being creating in which mode
            by calling the get or listManagedInstances API.

            This field is a member of `oneof`_ ``_no_creation_retries``.
        target_size (int):
            The number of running instances that the
            managed instance group should maintain at any
            given time. The group automatically adds or
            removes instances to maintain the number of
            instances specified by this parameter.

            This field is a member of `oneof`_ ``_target_size``.
    """

    no_creation_retries: bool = proto.Field(
        proto.BOOL,
        number=39329444,
        optional=True,
    )
    target_size: int = proto.Field(
        proto.INT32,
        number=62880239,
        optional=True,
    )


class InstanceGroupManagersResumeInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class InstanceGroupManagersScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_managers (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManager]):
            [Output Only] The list of managed instance groups that are
            contained in the specified project and zone.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] The warning that replaces the list of managed
            instance groups when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    instance_group_managers: MutableSequence[
        "InstanceGroupManager"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=214072592,
        message="InstanceGroupManager",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupManagersSetAutoHealingRequest(proto.Message):
    r"""

    Attributes:
        auto_healing_policies (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManagerAutoHealingPolicy]):

    """

    auto_healing_policies: MutableSequence[
        "InstanceGroupManagerAutoHealingPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=456799109,
        message="InstanceGroupManagerAutoHealingPolicy",
    )


class InstanceGroupManagersSetInstanceTemplateRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            The URL of the instance template that is
            specified for this managed instance group. The
            group uses this template to create all new
            instances in the managed instance group. The
            templates for existing instances in the group do
            not change unless you run recreateInstances, run
            applyUpdatesToInstances, or set the group's
            updatePolicy.type to PROACTIVE.

            This field is a member of `oneof`_ ``_instance_template``.
    """

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
        optional=True,
    )


class InstanceGroupManagersSetTargetPoolsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            The fingerprint of the target pools
            information. Use this optional property to
            prevent conflicts when multiple users change the
            target pools settings concurrently. Obtain the
            fingerprint with the instanceGroupManagers.get
            method. Then, include the fingerprint in your
            request to ensure that you do not overwrite
            changes that were applied from another
            concurrent request.

            This field is a member of `oneof`_ ``_fingerprint``.
        target_pools (MutableSequence[str]):
            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.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    target_pools: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=336072617,
    )


class InstanceGroupManagersStartInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class InstanceGroupManagersStopInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        force_stop (bool):
            If this flag is set to true, the Instance
            Group Manager will proceed to stop the
            instances, skipping initialization on them.

            This field is a member of `oneof`_ ``_force_stop``.
        instances (MutableSequence[str]):
            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].
    """

    force_stop: bool = proto.Field(
        proto.BOOL,
        number=134762710,
        optional=True,
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class InstanceGroupManagersSuspendInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        force_suspend (bool):
            If this flag is set to true, the Instance
            Group Manager will proceed to suspend the
            instances, skipping initialization on them.

            This field is a member of `oneof`_ ``_force_suspend``.
        instances (MutableSequence[str]):
            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].
    """

    force_suspend: bool = proto.Field(
        proto.BOOL,
        number=27637480,
        optional=True,
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class InstanceGroupManagersUpdatePerInstanceConfigsReq(proto.Message):
    r"""InstanceGroupManagers.updatePerInstanceConfigs

    Attributes:
        per_instance_configs (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            The list of per-instance configurations to
            insert or patch on this managed instance group.
    """

    per_instance_configs: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=526265001,
        message="PerInstanceConfig",
    )


class InstanceGroupsAddInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.InstanceReference]):
            The list of instances to add to the instance
            group.
    """

    instances: MutableSequence["InstanceReference"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="InstanceReference",
    )


class InstanceGroupsListInstances(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceWithNamedPorts]):
            A list of InstanceWithNamedPorts resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupsListInstances for the list of
            instances in the specified instance group.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceWithNamedPorts"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceWithNamedPorts",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupsListInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_state (str):
            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. Check the InstanceState enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_instance_state``.
    """

    class InstanceState(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_INSTANCE_STATE (0):
                A value indicating that the enum field is not
                set.
            ALL (64897):
                Includes all instances in the generated list
                regardless of their state.
            RUNNING (121282975):
                Includes instances in the generated list only
                if they have a RUNNING state.
        """
        UNDEFINED_INSTANCE_STATE = 0
        ALL = 64897
        RUNNING = 121282975

    instance_state: str = proto.Field(
        proto.STRING,
        number=92223591,
        optional=True,
    )


class InstanceGroupsRemoveInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.InstanceReference]):
            The list of instances to remove from the
            instance group.
    """

    instances: MutableSequence["InstanceReference"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="InstanceReference",
    )


class InstanceGroupsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_groups (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroup]):
            [Output Only] The list of instance groups that are contained
            in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that replaces the
            list of instance groups when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    instance_groups: MutableSequence["InstanceGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=366469310,
        message="InstanceGroup",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceGroupsSetNamedPortsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            The fingerprint of the named ports
            information for this instance group. Use this
            optional property to prevent conflicts when
            multiple users change the named ports settings
            concurrently. Obtain the fingerprint with the
            instanceGroups.get method. Then, include the
            fingerprint in your request to ensure that you
            do not overwrite changes that were applied from
            another concurrent request. A request with an
            incorrect fingerprint will fail with error 412
            conditionNotMet.

            This field is a member of `oneof`_ ``_fingerprint``.
        named_ports (MutableSequence[google.cloud.compute_v1beta.types.NamedPort]):
            The list of named ports to set for this
            instance group.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    named_ports: MutableSequence["NamedPort"] = proto.RepeatedField(
        proto.MESSAGE,
        number=427598732,
        message="NamedPort",
    )


class InstanceList(proto.Message):
    r"""Contains a list of instances.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Instance]):
            A list of Instance resources.
        kind (str):
            [Output Only] Type of resource. Always compute#instanceList
            for lists of Instance resources.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Instance"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Instance",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceListReferrers(proto.Message):
    r"""Contains a list of instance referrers.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Reference]):
            A list of Reference resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#instanceListReferrers for lists of Instance
            referrers.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Reference"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Reference",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceManagedByIgmError(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        error (google.cloud.compute_v1beta.types.InstanceManagedByIgmErrorManagedInstanceError):
            [Output Only] Contents of the error.

            This field is a member of `oneof`_ ``_error``.
        instance_action_details (google.cloud.compute_v1beta.types.InstanceManagedByIgmErrorInstanceActionDetails):
            [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.

            This field is a member of `oneof`_ ``_instance_action_details``.
        timestamp (str):
            [Output Only] The time that this error occurred. This value
            is in RFC3339 text format.

            This field is a member of `oneof`_ ``_timestamp``.
    """

    error: "InstanceManagedByIgmErrorManagedInstanceError" = proto.Field(
        proto.MESSAGE,
        number=96784904,
        optional=True,
        message="InstanceManagedByIgmErrorManagedInstanceError",
    )
    instance_action_details: "InstanceManagedByIgmErrorInstanceActionDetails" = (
        proto.Field(
            proto.MESSAGE,
            number=292224547,
            optional=True,
            message="InstanceManagedByIgmErrorInstanceActionDetails",
        )
    )
    timestamp: str = proto.Field(
        proto.STRING,
        number=55126294,
        optional=True,
    )


class InstanceManagedByIgmErrorInstanceActionDetails(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        action (str):
            [Output Only] Action that managed instance group was
            executing on the instance when the error occurred. Possible
            values: Check the Action enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_action``.
        instance (str):
            [Output Only] The URL of the instance. The URL can be set
            even if the instance has not yet been created.

            This field is a member of `oneof`_ ``_instance``.
        version (google.cloud.compute_v1beta.types.ManagedInstanceVersion):
            [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.

            This field is a member of `oneof`_ ``_version``.
    """

    class Action(proto.Enum):
        r"""[Output Only] Action that managed instance group was executing on
        the instance when the error occurred. Possible values:

        Values:
            UNDEFINED_ACTION (0):
                A value indicating that the enum field is not
                set.
            ABANDONING (388244813):
                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 (455564985):
                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 (428843785):
                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 (528602024):
                The managed instance group is permanently
                deleting this instance.
            NONE (2402104):
                The managed instance group has not scheduled
                any actions for this instance.
            RECREATING (287278572):
                The managed instance group is recreating this
                instance.
            REFRESHING (163266343):
                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 (320534387):
                The managed instance group is restarting this
                instance.
            RESUMING (446856618):
                The managed instance group is resuming this
                instance.
            STARTING (488820800):
                The managed instance group is starting this
                instance.
            STOPPING (350791796):
                The managed instance group is stopping this
                instance.
            SUSPENDING (514206246):
                The managed instance group is suspending this
                instance.
            VERIFYING (16982185):
                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).
        """
        UNDEFINED_ACTION = 0
        ABANDONING = 388244813
        CREATING = 455564985
        CREATING_WITHOUT_RETRIES = 428843785
        DELETING = 528602024
        NONE = 2402104
        RECREATING = 287278572
        REFRESHING = 163266343
        RESTARTING = 320534387
        RESUMING = 446856618
        STARTING = 488820800
        STOPPING = 350791796
        SUSPENDING = 514206246
        VERIFYING = 16982185

    action: str = proto.Field(
        proto.STRING,
        number=187661878,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )
    version: "ManagedInstanceVersion" = proto.Field(
        proto.MESSAGE,
        number=351608024,
        optional=True,
        message="ManagedInstanceVersion",
    )


class InstanceManagedByIgmErrorManagedInstanceError(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (str):
            [Output Only] Error code.

            This field is a member of `oneof`_ ``_code``.
        message (str):
            [Output Only] Error message.

            This field is a member of `oneof`_ ``_message``.
    """

    code: str = proto.Field(
        proto.STRING,
        number=3059181,
        optional=True,
    )
    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )


class InstanceMoveRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        destination_zone (str):
            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

            This field is a member of `oneof`_ ``_destination_zone``.
        target_instance (str):
            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

            This field is a member of `oneof`_ ``_target_instance``.
    """

    destination_zone: str = proto.Field(
        proto.STRING,
        number=131854653,
        optional=True,
    )
    target_instance: str = proto.Field(
        proto.STRING,
        number=289769347,
        optional=True,
    )


class InstanceParams(proto.Message):
    r"""Additional instance params.

    Attributes:
        resource_manager_tags (MutableMapping[str, str]):
            Resource manager tags to be bound to the instance. Tag keys
            and values have the same definition as resource manager
            tags. Keys must be in the format ``tagKeys/{tag_key_id}``,
            and values are in the format ``tagValues/456``. The field is
            ignored (both PUT & PATCH) when empty.
    """

    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )


class InstanceProperties(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        advanced_machine_features (google.cloud.compute_v1beta.types.AdvancedMachineFeatures):
            Controls for advanced machine-related
            behavior features. Note that for MachineImage,
            this is not supported yet.

            This field is a member of `oneof`_ ``_advanced_machine_features``.
        can_ip_forward (bool):
            Enables instances created based on these
            properties to send packets with source IP
            addresses other than their own and receive
            packets with destination IP addresses other than
            their own. If these instances will be used as an
            IP gateway or it will be set as the next-hop in
            a Route resource, specify true. If unsure, leave
            this set to false. See the Enable IP forwarding
            documentation for more information.

            This field is a member of `oneof`_ ``_can_ip_forward``.
        confidential_instance_config (google.cloud.compute_v1beta.types.ConfidentialInstanceConfig):
            Specifies the Confidential Instance options.
            Note that for MachineImage, this is not
            supported yet.

            This field is a member of `oneof`_ ``_confidential_instance_config``.
        description (str):
            An optional text description for the
            instances that are created from these
            properties.

            This field is a member of `oneof`_ ``_description``.
        disks (MutableSequence[google.cloud.compute_v1beta.types.AttachedDisk]):
            An array of disks that are associated with
            the instances that are created from these
            properties.
        display_device (google.cloud.compute_v1beta.types.DisplayDevice):
            Display Device properties to enable support
            for remote display products like: Teradici, VNC
            and TeamViewer Note that for MachineImage, this
            is not supported yet.

            This field is a member of `oneof`_ ``_display_device``.
        guest_accelerators (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorConfig]):
            A list of guest accelerator cards' type and
            count to use for instances created from these
            properties.
        key_revocation_action_type (str):
            KeyRevocationActionType of the instance.
            Supported options are "STOP" and "NONE". The
            default value is "NONE" if it is not specified.
            Check the KeyRevocationActionType enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_key_revocation_action_type``.
        labels (MutableMapping[str, str]):
            Labels to apply to instances that are created
            from these properties.
        machine_type (str):
            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``.

            This field is a member of `oneof`_ ``_machine_type``.
        metadata (google.cloud.compute_v1beta.types.Metadata):
            The metadata key/value pairs to assign to
            instances that are created from these
            properties. These pairs can consist of custom
            metadata or predefined keys. See Project and
            instance metadata for more information.

            This field is a member of `oneof`_ ``_metadata``.
        min_cpu_platform (str):
            Minimum cpu/platform to be used by instances.
            The instance may be scheduled on the specified
            or newer cpu/platform. Applicable values are the
            friendly names of CPU platforms, such as
            minCpuPlatform: "Intel Haswell" or
            minCpuPlatform: "Intel Sandy Bridge". For more
            information, read Specifying a Minimum CPU
            Platform.

            This field is a member of `oneof`_ ``_min_cpu_platform``.
        network_interfaces (MutableSequence[google.cloud.compute_v1beta.types.NetworkInterface]):
            An array of network access configurations for
            this interface.
        network_performance_config (google.cloud.compute_v1beta.types.NetworkPerformanceConfig):
            Note that for MachineImage, this is not
            supported yet.

            This field is a member of `oneof`_ ``_network_performance_config``.
        partner_metadata (MutableMapping[str, google.cloud.compute_v1beta.types.StructuredEntries]):
            Partner Metadata assigned to the instance
            properties. A map from a subdomain (namespace)
            to entries map.
        post_key_revocation_action_type (str):
            PostKeyRevocationActionType of the instance.
            Check the PostKeyRevocationActionType enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_post_key_revocation_action_type``.
        private_ipv6_google_access (str):
            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. Check the
            PrivateIpv6GoogleAccess enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_private_ipv6_google_access``.
        reservation_affinity (google.cloud.compute_v1beta.types.ReservationAffinity):
            Specifies the reservations that instances can
            consume from. Note that for MachineImage, this
            is not supported yet.

            This field is a member of `oneof`_ ``_reservation_affinity``.
        resource_manager_tags (MutableMapping[str, str]):
            Resource manager tags to be bound to the instance. Tag keys
            and values have the same definition as resource manager
            tags. Keys must be in the format ``tagKeys/{tag_key_id}``,
            and values are in the format ``tagValues/456``. The field is
            ignored (both PUT & PATCH) when empty.
        resource_policies (MutableSequence[str]):
            Resource policies (names, not URLs) applied
            to instances created from these properties. Note
            that for MachineImage, this is not supported
            yet.
        scheduling (google.cloud.compute_v1beta.types.Scheduling):
            Specifies the scheduling options for the
            instances that are created from these
            properties.

            This field is a member of `oneof`_ ``_scheduling``.
        service_accounts (MutableSequence[google.cloud.compute_v1beta.types.ServiceAccount]):
            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.
        shielded_instance_config (google.cloud.compute_v1beta.types.ShieldedInstanceConfig):
            Note that for MachineImage, this is not
            supported yet.

            This field is a member of `oneof`_ ``_shielded_instance_config``.
        shielded_vm_config (google.cloud.compute_v1beta.types.ShieldedVmConfig):
            Specifies the Shielded VM options for the
            instances that are created from these
            properties.

            This field is a member of `oneof`_ ``_shielded_vm_config``.
        tags (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_tags``.
    """

    class KeyRevocationActionType(proto.Enum):
        r"""KeyRevocationActionType of the instance. Supported options
        are "STOP" and "NONE". The default value is "NONE" if it is not
        specified.

        Values:
            UNDEFINED_KEY_REVOCATION_ACTION_TYPE (0):
                A value indicating that the enum field is not
                set.
            KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED (467110106):
                Default value. This value is unused.
            NONE (2402104):
                Indicates user chose no operation.
            STOP (2555906):
                Indicates user chose to opt for VM shutdown
                on key revocation.
        """
        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0
        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106
        NONE = 2402104
        STOP = 2555906

    class PostKeyRevocationActionType(proto.Enum):
        r"""PostKeyRevocationActionType of the instance.

        Values:
            UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE (0):
                A value indicating that the enum field is not
                set.
            NOOP (2402146):
                Indicates user chose no operation.
            POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED (228738393):
                Default value. This value is unused.
            SHUTDOWN (76412502):
                Indicates user chose to opt for VM shutdown
                on key revocation.
        """
        UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE = 0
        NOOP = 2402146
        POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 228738393
        SHUTDOWN = 76412502

    class PrivateIpv6GoogleAccess(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS (0):
                A value indicating that the enum field is not
                set.
            ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE (427975994):
                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 (288210263):
                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 (530256959):
                Each network interface inherits
                PrivateIpv6GoogleAccess from its subnetwork.
        """
        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0
        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994
        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263
        INHERIT_FROM_SUBNETWORK = 530256959

    advanced_machine_features: "AdvancedMachineFeatures" = proto.Field(
        proto.MESSAGE,
        number=409646002,
        optional=True,
        message="AdvancedMachineFeatures",
    )
    can_ip_forward: bool = proto.Field(
        proto.BOOL,
        number=467731324,
        optional=True,
    )
    confidential_instance_config: "ConfidentialInstanceConfig" = proto.Field(
        proto.MESSAGE,
        number=490637685,
        optional=True,
        message="ConfidentialInstanceConfig",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disks: MutableSequence["AttachedDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="AttachedDisk",
    )
    display_device: "DisplayDevice" = proto.Field(
        proto.MESSAGE,
        number=258933875,
        optional=True,
        message="DisplayDevice",
    )
    guest_accelerators: MutableSequence["AcceleratorConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=463595119,
        message="AcceleratorConfig",
    )
    key_revocation_action_type: str = proto.Field(
        proto.STRING,
        number=235941474,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
        optional=True,
    )
    metadata: "Metadata" = proto.Field(
        proto.MESSAGE,
        number=86866735,
        optional=True,
        message="Metadata",
    )
    min_cpu_platform: str = proto.Field(
        proto.STRING,
        number=242912759,
        optional=True,
    )
    network_interfaces: MutableSequence["NetworkInterface"] = proto.RepeatedField(
        proto.MESSAGE,
        number=52735243,
        message="NetworkInterface",
    )
    network_performance_config: "NetworkPerformanceConfig" = proto.Field(
        proto.MESSAGE,
        number=398330850,
        optional=True,
        message="NetworkPerformanceConfig",
    )
    partner_metadata: MutableMapping[str, "StructuredEntries"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=65908934,
        message="StructuredEntries",
    )
    post_key_revocation_action_type: str = proto.Field(
        proto.STRING,
        number=292972897,
        optional=True,
    )
    private_ipv6_google_access: str = proto.Field(
        proto.STRING,
        number=48277006,
        optional=True,
    )
    reservation_affinity: "ReservationAffinity" = proto.Field(
        proto.MESSAGE,
        number=157850683,
        optional=True,
        message="ReservationAffinity",
    )
    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )
    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )
    scheduling: "Scheduling" = proto.Field(
        proto.MESSAGE,
        number=386688404,
        optional=True,
        message="Scheduling",
    )
    service_accounts: MutableSequence["ServiceAccount"] = proto.RepeatedField(
        proto.MESSAGE,
        number=277537328,
        message="ServiceAccount",
    )
    shielded_instance_config: "ShieldedInstanceConfig" = proto.Field(
        proto.MESSAGE,
        number=12862901,
        optional=True,
        message="ShieldedInstanceConfig",
    )
    shielded_vm_config: "ShieldedVmConfig" = proto.Field(
        proto.MESSAGE,
        number=477568019,
        optional=True,
        message="ShieldedVmConfig",
    )
    tags: "Tags" = proto.Field(
        proto.MESSAGE,
        number=3552281,
        optional=True,
        message="Tags",
    )


class InstancePropertiesPatch(proto.Message):
    r"""Represents the change that you want to make to the instance
    properties.

    Attributes:
        labels (MutableMapping[str, str]):
            The label key-value pairs that you want to
            patch onto the instance.
        metadata (MutableMapping[str, str]):
            The metadata key-value pairs that you want to
            patch onto the instance. For more information,
            see Project and instance metadata.
    """

    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    metadata: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=86866735,
    )


class InstanceReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            The URL for a specific instance. @required
            compute.instancegroups.addInstances/removeInstances

            This field is a member of `oneof`_ ``_instance``.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )


class InstanceSettings(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#instance_settings for instance settings.

            This field is a member of `oneof`_ ``_kind``.
        metadata (google.cloud.compute_v1beta.types.InstanceSettingsMetadata):
            The metadata key/value pairs assigned to all
            the instances in the corresponding scope.

            This field is a member of `oneof`_ ``_metadata``.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    metadata: "InstanceSettingsMetadata" = proto.Field(
        proto.MESSAGE,
        number=86866735,
        optional=True,
        message="InstanceSettingsMetadata",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InstanceSettingsMetadata(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        items (MutableMapping[str, str]):
            A metadata key/value items map. The total
            size of all keys and values must be less than
            512KB.
        kind (str):
            [Output Only] Type of the resource. Always compute#metadata
            for metadata.

            This field is a member of `oneof`_ ``_kind``.
    """

    items: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=100526016,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )


class InstanceTemplate(proto.Message):
    r"""Represents an Instance Template resource. Google Compute Engine has
    two Instance Template resources: \*
    `Global </compute/docs/reference/rest/beta/instanceTemplates>`__ \*
    `Regional </compute/docs/reference/rest/beta/regionInstanceTemplates>`__
    You can reuse a global instance template in different regions
    whereas you can use a regional instance template in a specified
    region only. If you want to reduce cross-region dependency or
    achieve data residency, use a regional instance template. To create
    VMs, managed instance groups, and reservations, you can use either
    global or regional instance templates. For more information, read
    Instance Templates.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] The creation timestamp for this instance
            template in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] A unique identifier for this instance
            template. The server defines this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceTemplate for instance templates.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        properties (google.cloud.compute_v1beta.types.InstanceProperties):
            The instance properties for this instance
            template.

            This field is a member of `oneof`_ ``_properties``.
        region (str):
            [Output Only] URL of the region where the instance template
            resides. Only applicable for regional resources.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] The URL for this instance template. The server
            defines this URL.

            This field is a member of `oneof`_ ``_self_link``.
        source_instance (str):
            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

            This field is a member of `oneof`_ ``_source_instance``.
        source_instance_params (google.cloud.compute_v1beta.types.SourceInstanceParams):
            The source instance params to use to create
            this instance template.

            This field is a member of `oneof`_ ``_source_instance_params``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    properties: "InstanceProperties" = proto.Field(
        proto.MESSAGE,
        number=147688755,
        optional=True,
        message="InstanceProperties",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    source_instance: str = proto.Field(
        proto.STRING,
        number=396315705,
        optional=True,
    )
    source_instance_params: "SourceInstanceParams" = proto.Field(
        proto.MESSAGE,
        number=135342156,
        optional=True,
        message="SourceInstanceParams",
    )


class InstanceTemplateAggregatedList(proto.Message):
    r"""Contains a list of InstanceTemplatesScopedList.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.InstanceTemplatesScopedList]):
            A list of InstanceTemplatesScopedList
            resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "InstanceTemplatesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="InstanceTemplatesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceTemplateList(proto.Message):
    r"""A list of instance templates.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceTemplate]):
            A list of InstanceTemplate resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceTemplatesListResponse for instance template
            lists.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceTemplate"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceTemplate",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceTemplatesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_templates (MutableSequence[google.cloud.compute_v1beta.types.InstanceTemplate]):
            [Output Only] A list of instance templates that are
            contained within the specified project and zone.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that replaces the
            list of instance templates when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    instance_templates: MutableSequence["InstanceTemplate"] = proto.RepeatedField(
        proto.MESSAGE,
        number=459889679,
        message="InstanceTemplate",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstanceWithNamedPorts(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            [Output Only] The URL of the instance.

            This field is a member of `oneof`_ ``_instance``.
        named_ports (MutableSequence[google.cloud.compute_v1beta.types.NamedPort]):
            [Output Only] The named ports that belong to this instance
            group.
        status (str):
            [Output Only] The status of the instance. Check the Status
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class Status(proto.Enum):
        r"""[Output Only] The status of the instance.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            DEPROVISIONING (428935662):
                The instance is halted and we are performing
                tear down tasks like network deprogramming,
                releasing quota, IP, tearing down disks etc.
            PENDING_STOP (362509770):
                The instance is gracefully shutting down.
            PROVISIONING (290896621):
                Resources are being allocated for the
                instance.
            REPAIRING (413483285):
                The instance is in repair.
            RUNNING (121282975):
                The instance is running.
            STAGING (431072283):
                All required resources have been allocated
                and the instance is being started.
            STOPPED (444276141):
                The instance has stopped successfully.
            STOPPING (350791796):
                The instance is currently stopping (either
                being deleted or killed).
            SUSPENDED (51223995):
                The instance has suspended.
            SUSPENDING (514206246):
                The instance is suspending.
            TERMINATED (250018339):
                The instance has stopped (either by explicit
                action or underlying failure).
        """
        UNDEFINED_STATUS = 0
        DEPROVISIONING = 428935662
        PENDING_STOP = 362509770
        PROVISIONING = 290896621
        REPAIRING = 413483285
        RUNNING = 121282975
        STAGING = 431072283
        STOPPED = 444276141
        STOPPING = 350791796
        SUSPENDED = 51223995
        SUSPENDING = 514206246
        TERMINATED = 250018339

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )
    named_ports: MutableSequence["NamedPort"] = proto.RepeatedField(
        proto.MESSAGE,
        number=427598732,
        message="NamedPort",
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class InstancesAddResourcePoliciesRequest(proto.Message):
    r"""

    Attributes:
        resource_policies (MutableSequence[str]):
            Resource policies to be added to this
            instance.
    """

    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )


class InstancesBulkInsertOperationMetadata(proto.Message):
    r"""

    Attributes:
        per_location_status (MutableMapping[str, google.cloud.compute_v1beta.types.BulkInsertOperationStatus]):
            Status information per location (location
            name is key). Example key: zones/us-central1-a
    """

    per_location_status: MutableMapping[
        str, "BulkInsertOperationStatus"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=167851162,
        message="BulkInsertOperationStatus",
    )


class InstancesGetEffectiveFirewallsResponse(proto.Message):
    r"""

    Attributes:
        firewall_policys (MutableSequence[google.cloud.compute_v1beta.types.InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy]):
            [Output Only] Effective firewalls from firewall policies.
        firewalls (MutableSequence[google.cloud.compute_v1beta.types.Firewall]):
            Effective firewalls on the instance.
        organization_firewalls (MutableSequence[google.cloud.compute_v1beta.types.InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy]):
            Effective firewalls from organization
            policies.
    """

    firewall_policys: MutableSequence[
        "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=410985794,
        message="InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
    )
    firewalls: MutableSequence["Firewall"] = proto.RepeatedField(
        proto.MESSAGE,
        number=272245619,
        message="Firewall",
    )
    organization_firewalls: MutableSequence[
        "InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=466315111,
        message="InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy",
    )


class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        display_name (str):
            [Output Only] Deprecated, please use short name instead. The
            display name of the firewall policy.

            This field is a member of `oneof`_ ``_display_name``.
        name (str):
            [Output Only] The name of the firewall policy.

            This field is a member of `oneof`_ ``_name``.
        packet_mirroring_rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            [Output Only] The packet mirroring rules that apply to the
            instance.
        priority (int):
            [Output only] Priority of firewall policy association. Not
            applicable for type=HIERARCHY.

            This field is a member of `oneof`_ ``_priority``.
        rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            [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.
        short_name (str):
            [Output Only] The short name of the firewall policy.

            This field is a member of `oneof`_ ``_short_name``.
        type_ (str):
            [Output Only] The type of the firewall policy. Can be one of
            HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL,
            SYSTEM_REGIONAL. Check the Type enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""[Output Only] The type of the firewall policy. Can be one of
        HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL,
        SYSTEM_REGIONAL.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            HIERARCHY (69902869):
                No description available.
            NETWORK (413984270):
                No description available.
            NETWORK_REGIONAL (190804272):
                No description available.
            SYSTEM_GLOBAL (60099507):
                No description available.
            SYSTEM_REGIONAL (161777199):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_TYPE = 0
        HIERARCHY = 69902869
        NETWORK = 413984270
        NETWORK_REGIONAL = 190804272
        SYSTEM_GLOBAL = 60099507
        SYSTEM_REGIONAL = 161777199
        UNSPECIFIED = 526786327

    display_name: str = proto.Field(
        proto.STRING,
        number=4473832,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=531644356,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="FirewallPolicyRule",
    )
    short_name: str = proto.Field(
        proto.STRING,
        number=492051566,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy(proto.Message):
    r"""A pruned SecurityPolicy containing ID and any applicable
    firewall rules.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (int):
            The unique identifier for the security
            policy. This identifier is defined by the
            server.

            This field is a member of `oneof`_ ``_id``.
        rules (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRule]):
            The rules that apply to the network.
    """

    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    rules: MutableSequence["SecurityPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="SecurityPolicyRule",
    )


class InstancesRemoveResourcePoliciesRequest(proto.Message):
    r"""

    Attributes:
        resource_policies (MutableSequence[str]):
            Resource policies to be removed from this
            instance.
    """

    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )


class InstancesReportHostAsFaultyRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disruption_schedule (str):
            The disruption schedule for the VM. Required
            field, only allows IMMEDIATE. Check the
            DisruptionSchedule enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_disruption_schedule``.
        fault_reasons (MutableSequence[google.cloud.compute_v1beta.types.InstancesReportHostAsFaultyRequestFaultReason]):

    """

    class DisruptionSchedule(proto.Enum):
        r"""The disruption schedule for the VM. Required field, only
        allows IMMEDIATE.

        Values:
            UNDEFINED_DISRUPTION_SCHEDULE (0):
                A value indicating that the enum field is not
                set.
            DISRUPTION_SCHEDULE_UNSPECIFIED (332543835):
                Not used. Required as per aip/126.
            FUTURE (474513859):
                Delay disruption for caller control. Will be
                default soon.
            IMMEDIATE (152881041):
                Default value. Disrupt the VM immediately.
        """
        UNDEFINED_DISRUPTION_SCHEDULE = 0
        DISRUPTION_SCHEDULE_UNSPECIFIED = 332543835
        FUTURE = 474513859
        IMMEDIATE = 152881041

    disruption_schedule: str = proto.Field(
        proto.STRING,
        number=95871619,
        optional=True,
    )
    fault_reasons: MutableSequence[
        "InstancesReportHostAsFaultyRequestFaultReason"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=168056210,
        message="InstancesReportHostAsFaultyRequestFaultReason",
    )


class InstancesReportHostAsFaultyRequestFaultReason(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        behavior (str):
            Check the Behavior enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_behavior``.
        description (str):

            This field is a member of `oneof`_ ``_description``.
    """

    class Behavior(proto.Enum):
        r"""

        Values:
            UNDEFINED_BEHAVIOR (0):
                A value indicating that the enum field is not
                set.
            BEHAVIOR_UNSPECIFIED (85734570):
                Public reportable behaviors
            PERFORMANCE (135701520):
                No description available.
            SILENT_DATA_CORRUPTION (111360678):
                No description available.
            UNRECOVERABLE_GPU_ERROR (363710747):
                No description available.
        """
        UNDEFINED_BEHAVIOR = 0
        BEHAVIOR_UNSPECIFIED = 85734570
        PERFORMANCE = 135701520
        SILENT_DATA_CORRUPTION = 111360678
        UNRECOVERABLE_GPU_ERROR = 363710747

    behavior: str = proto.Field(
        proto.STRING,
        number=437170770,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )


class InstancesResumeRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disks (MutableSequence[google.cloud.compute_v1beta.types.CustomerEncryptionKeyProtectedDisk]):
            Array of disks associated with this instance
            that are protected with a customer-supplied
            encryption key. In order to resume the instance,
            the disk url and its corresponding key must be
            provided. If the disk is not protected with a
            customer-supplied encryption key it should not
            be specified.
        instance_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Decrypts data associated with an instance
            that is protected with a customer-supplied
            encryption key. If the instance you are starting
            is protected with a customer-supplied encryption
            key, the correct key must be provided otherwise
            the instance resume will not succeed.

            This field is a member of `oneof`_ ``_instance_encryption_key``.
    """

    disks: MutableSequence["CustomerEncryptionKeyProtectedDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="CustomerEncryptionKeyProtectedDisk",
    )
    instance_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=64741517,
        optional=True,
        message="CustomerEncryptionKey",
    )


class InstancesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.Instance]):
            [Output Only] A list of instances contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of instances when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    instances: MutableSequence["Instance"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="Instance",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstancesSetLabelsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        label_fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):

    """

    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )


class InstancesSetMachineResourcesRequest(proto.Message):
    r"""

    Attributes:
        guest_accelerators (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorConfig]):
            A list of the type and count of accelerator
            cards attached to the instance.
    """

    guest_accelerators: MutableSequence["AcceleratorConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=463595119,
        message="AcceleratorConfig",
    )


class InstancesSetMachineTypeRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        machine_type (str):
            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

            This field is a member of `oneof`_ ``_machine_type``.
    """

    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
        optional=True,
    )


class InstancesSetMinCpuPlatformRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        min_cpu_platform (str):
            Minimum cpu/platform this instance should be
            started at.

            This field is a member of `oneof`_ ``_min_cpu_platform``.
    """

    min_cpu_platform: str = proto.Field(
        proto.STRING,
        number=242912759,
        optional=True,
    )


class InstancesSetNameRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        current_name (str):
            The current name of this resource, used to
            prevent conflicts. Provide the latest name when
            making a request to change name.

            This field is a member of `oneof`_ ``_current_name``.
        name (str):
            The name to be applied to the instance. Needs
            to be RFC 1035 compliant.

            This field is a member of `oneof`_ ``_name``.
    """

    current_name: str = proto.Field(
        proto.STRING,
        number=394983825,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class InstancesSetSecurityPolicyRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_interfaces (MutableSequence[str]):
            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.
        security_policy (str):
            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.

            This field is a member of `oneof`_ ``_security_policy``.
    """

    network_interfaces: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=52735243,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
        optional=True,
    )


class InstancesSetServiceAccountRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        email (str):
            Email address of the service account.

            This field is a member of `oneof`_ ``_email``.
        scopes (MutableSequence[str]):
            The list of scopes to be made available for
            this service account.
    """

    email: str = proto.Field(
        proto.STRING,
        number=96619420,
        optional=True,
    )
    scopes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=165973151,
    )


class InstancesStartWithEncryptionKeyRequest(proto.Message):
    r"""

    Attributes:
        disks (MutableSequence[google.cloud.compute_v1beta.types.CustomerEncryptionKeyProtectedDisk]):
            Array of disks associated with this instance
            that are protected with a customer-supplied
            encryption key. In order to start the instance,
            the disk url and its corresponding key must be
            provided. If the disk is not protected with a
            customer-supplied encryption key it should not
            be specified.
    """

    disks: MutableSequence["CustomerEncryptionKeyProtectedDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="CustomerEncryptionKeyProtectedDisk",
    )


class InstantSnapshot(proto.Message):
    r"""Represents a InstantSnapshot resource. You can use instant
    snapshots to create disk rollback points quickly..


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        architecture (str):
            [Output Only] The architecture of the instant snapshot.
            Valid values are ARM64 or X86_64. Check the Architecture
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_architecture``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        disk_size_gb (int):
            [Output Only] Size of the source disk, specified in GB.

            This field is a member of `oneof`_ ``_disk_size_gb``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#instantSnapshot for InstantSnapshot resources.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this InstantSnapshot, which is essentially a
            hash of the labels set used for optimistic
            locking. The fingerprint is initially generated
            by Compute Engine and changes after every
            request to modify or update labels. You must
            always provide an up-to-date fingerprint hash in
            order to update or change labels, otherwise the
            request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve a
            InstantSnapshot.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels to apply to this InstantSnapshot.
            These can be later modified by the setLabels
            method. Label values may be empty.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        resource_status (google.cloud.compute_v1beta.types.InstantSnapshotResourceStatus):
            [Output Only] Status information for the instant snapshot
            resource.

            This field is a member of `oneof`_ ``_resource_status``.
        satisfies_pzi (bool):
            Output only. Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzi``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource's
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        source_disk (str):
            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

            This field is a member of `oneof`_ ``_source_disk``.
        source_disk_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_disk_id``.
        status (str):
            [Output Only] The status of the instantSnapshot. This can be
            CREATING, DELETING, FAILED, or READY. Check the Status enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    class Architecture(proto.Enum):
        r"""[Output Only] The architecture of the instant snapshot. Valid values
        are ARM64 or X86_64.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    class Status(proto.Enum):
        r"""[Output Only] The status of the instantSnapshot. This can be
        CREATING, DELETING, FAILED, or READY.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                InstantSnapshot creation is in progress.
            DELETING (528602024):
                InstantSnapshot is currently being deleted.
            FAILED (455706685):
                InstantSnapshot creation failed.
            READY (77848963):
                InstantSnapshot has been created
                successfully.
            UNAVAILABLE (413756464):
                InstantSnapshot is currently unavailable and
                cannot be used for Disk restoration
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        FAILED = 455706685
        READY = 77848963
        UNAVAILABLE = 413756464

    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    resource_status: "InstantSnapshotResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=249429315,
        optional=True,
        message="InstantSnapshotResourceStatus",
    )
    satisfies_pzi: bool = proto.Field(
        proto.BOOL,
        number=480964257,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    source_disk: str = proto.Field(
        proto.STRING,
        number=451753793,
        optional=True,
    )
    source_disk_id: str = proto.Field(
        proto.STRING,
        number=454190809,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InstantSnapshotAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.InstantSnapshotsScopedList]):
            A list of InstantSnapshotsScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#instantSnapshotAggregatedList for aggregated lists
            of instantSnapshots.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "InstantSnapshotsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="InstantSnapshotsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstantSnapshotList(proto.Message):
    r"""Contains a list of InstantSnapshot resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstantSnapshot]):
            A list of InstantSnapshot resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstantSnapshot"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstantSnapshot",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InstantSnapshotResourceStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        storage_size_bytes (int):
            [Output Only] The storage size of this instant snapshot.

            This field is a member of `oneof`_ ``_storage_size_bytes``.
    """

    storage_size_bytes: int = proto.Field(
        proto.INT64,
        number=387548913,
        optional=True,
    )


class InstantSnapshotsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instant_snapshots (MutableSequence[google.cloud.compute_v1beta.types.InstantSnapshot]):
            [Output Only] A list of instantSnapshots contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of instantSnapshots when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    instant_snapshots: MutableSequence["InstantSnapshot"] = proto.RepeatedField(
        proto.MESSAGE,
        number=329637457,
        message="InstantSnapshot",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class Int64RangeMatch(proto.Message):
    r"""HttpRouteRuleMatch criteria for field values that must stay
    within the specified integer range.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        range_end (int):
            The end of the range (exclusive) in signed
            long integer format.

            This field is a member of `oneof`_ ``_range_end``.
        range_start (int):
            The start of the range (inclusive) in signed
            long integer format.

            This field is a member of `oneof`_ ``_range_start``.
    """

    range_end: int = proto.Field(
        proto.INT64,
        number=322439897,
        optional=True,
    )
    range_start: int = proto.Field(
        proto.INT64,
        number=103333600,
        optional=True,
    )


class Interconnect(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        aai_enabled (bool):
            Enable or disable the application awareness
            feature on this Cloud Interconnect.

            This field is a member of `oneof`_ ``_aai_enabled``.
        admin_enabled (bool):
            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.

            This field is a member of `oneof`_ ``_admin_enabled``.
        application_aware_interconnect (google.cloud.compute_v1beta.types.InterconnectApplicationAwareInterconnect):
            Configuration information for application
            awareness on this Cloud Interconnect.

            This field is a member of `oneof`_ ``_application_aware_interconnect``.
        available_features (MutableSequence[str]):
            [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 and MACsec isn't
            supported and enabling MACsec fails. Check the
            AvailableFeatures enum for the list of possible values.
        circuit_infos (MutableSequence[google.cloud.compute_v1beta.types.InterconnectCircuitInfo]):
            [Output Only] A list of CircuitInfo objects, that describe
            the individual circuits in this LAG.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        customer_name (str):
            Customer name, to put in the Letter of
            Authorization as the party authorized to request
            a crossconnect.

            This field is a member of `oneof`_ ``_customer_name``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        expected_outages (MutableSequence[google.cloud.compute_v1beta.types.InterconnectOutageNotification]):
            [Output Only] A list of outages expected for this
            Interconnect.
        google_ip_address (str):
            [Output Only] IP address configured on the Google side of
            the Interconnect link. This can be used only for ping tests.

            This field is a member of `oneof`_ ``_google_ip_address``.
        google_reference_id (str):
            [Output Only] Google reference ID to be used when raising
            support tickets with Google or otherwise to debug backend
            connectivity issues.

            This field is a member of `oneof`_ ``_google_reference_id``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        interconnect_attachments (MutableSequence[str]):
            [Output Only] A list of the URLs of all
            InterconnectAttachments configured to use this Interconnect.
        interconnect_groups (MutableSequence[str]):
            [Output Only] URLs of InterconnectGroups that include this
            Interconnect. Order is arbitrary and items are unique.
        interconnect_type (str):
            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.
            Check the InterconnectType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_interconnect_type``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#interconnect for interconnects.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this Interconnect, which is essentially a hash
            of the labels set used for optimistic locking.
            The fingerprint is initially generated by
            Compute Engine and changes after every request
            to modify or update labels. You must always
            provide an up-to-date fingerprint hash in order
            to update or change labels, otherwise the
            request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve an
            Interconnect.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        link_type (str):
            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. Check the LinkType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_link_type``.
        location (str):
            URL of the InterconnectLocation object that
            represents where this connection is to be
            provisioned.

            This field is a member of `oneof`_ ``_location``.
        macsec (google.cloud.compute_v1beta.types.InterconnectMacsec):
            Configuration that enables Media Access
            Control security (MACsec) on the Cloud
            Interconnect connection between Google and your
            on-premises router.

            This field is a member of `oneof`_ ``_macsec``.
        macsec_enabled (bool):
            Enable or disable MACsec on this Interconnect
            connection. MACsec enablement fails if the
            MACsec object is not specified.

            This field is a member of `oneof`_ ``_macsec_enabled``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        noc_contact_email (str):
            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.

            This field is a member of `oneof`_ ``_noc_contact_email``.
        operational_status (str):
            [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. Check the
            OperationalStatus enum for the list of possible values.

            This field is a member of `oneof`_ ``_operational_status``.
        peer_ip_address (str):
            [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.

            This field is a member of `oneof`_ ``_peer_ip_address``.
        provisioned_link_count (int):
            [Output Only] Number of links actually provisioned in this
            interconnect.

            This field is a member of `oneof`_ ``_provisioned_link_count``.
        remote_location (str):
            Indicates that this is a Cross-Cloud
            Interconnect. This field specifies the location
            outside of Google's network that the
            interconnect is connected to.

            This field is a member of `oneof`_ ``_remote_location``.
        requested_features (MutableSequence[str]):
            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, the default
            value is false, which allocates non-MACsec capable ports
            first if available. This parameter can be provided only with
            Interconnect INSERT. It isn't valid for Interconnect PATCH.
            Check the RequestedFeatures enum for the list of possible
            values.
        requested_link_count (int):
            Target number of physical links in the link
            bundle, as requested by the customer.

            This field is a member of `oneof`_ ``_requested_link_count``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        state (str):
            [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. Check the State enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_state``.
        wire_groups (MutableSequence[str]):
            [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.
    """

    class AvailableFeatures(proto.Enum):
        r"""Additional supported values which may be not listed in the enum
        directly due to technical reasons: IF_CROSS_SITE_NETWORK IF_MACSEC

        Values:
            UNDEFINED_AVAILABLE_FEATURES (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_AVAILABLE_FEATURES = 0

    class InterconnectType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_INTERCONNECT_TYPE (0):
                A value indicating that the enum field is not
                set.
            DEDICATED (258411983):
                A dedicated physical interconnection with the
                customer.
            IT_PRIVATE (335677007):
                [Deprecated] A private, physical interconnection with the
                customer.
            PARTNER (461924520):
                A partner-managed interconnection shared
                between customers via partner.
        """
        UNDEFINED_INTERCONNECT_TYPE = 0
        DEDICATED = 258411983
        IT_PRIVATE = 335677007
        PARTNER = 461924520

    class LinkType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_LINK_TYPE (0):
                A value indicating that the enum field is not
                set.
            LINK_TYPE_ETHERNET_100G_LR (337672551):
                100G Ethernet, LR Optics.
            LINK_TYPE_ETHERNET_10G_LR (236739749):
                10G Ethernet, LR Optics. [(rate_bps) = 10000000000];
            LINK_TYPE_ETHERNET_400G_LR4 (127023690):
                400G Ethernet, LR4 Optics.
        """
        UNDEFINED_LINK_TYPE = 0
        LINK_TYPE_ETHERNET_100G_LR = 337672551
        LINK_TYPE_ETHERNET_10G_LR = 236739749
        LINK_TYPE_ETHERNET_400G_LR4 = 127023690

    class OperationalStatus(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_OPERATIONAL_STATUS (0):
                A value indicating that the enum field is not
                set.
            OS_ACTIVE (55721409):
                The interconnect is valid, turned up, and
                ready to use. Attachments may be provisioned on
                this interconnect.
            OS_UNPROVISIONED (239771840):
                The interconnect has not completed turnup. No
                attachments may be provisioned on this
                interconnect.
        """
        UNDEFINED_OPERATIONAL_STATUS = 0
        OS_ACTIVE = 55721409
        OS_UNPROVISIONED = 239771840

    class RequestedFeatures(proto.Enum):
        r"""Additional supported values which may be not listed in the enum
        directly due to technical reasons: IF_CROSS_SITE_NETWORK IF_MACSEC

        Values:
            UNDEFINED_REQUESTED_FEATURES (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_REQUESTED_FEATURES = 0

    class State(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                The interconnect is valid, turned up, and
                ready to use. Attachments may be provisioned on
                this interconnect.
            UNPROVISIONED (517333979):
                The interconnect has not completed turnup. No
                attachments may be provisioned on this
                interconnect.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        UNPROVISIONED = 517333979

    aai_enabled: bool = proto.Field(
        proto.BOOL,
        number=388780363,
        optional=True,
    )
    admin_enabled: bool = proto.Field(
        proto.BOOL,
        number=445675089,
        optional=True,
    )
    application_aware_interconnect: "InterconnectApplicationAwareInterconnect" = (
        proto.Field(
            proto.MESSAGE,
            number=429095966,
            optional=True,
            message="InterconnectApplicationAwareInterconnect",
        )
    )
    available_features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=496344307,
    )
    circuit_infos: MutableSequence["InterconnectCircuitInfo"] = proto.RepeatedField(
        proto.MESSAGE,
        number=164839855,
        message="InterconnectCircuitInfo",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    customer_name: str = proto.Field(
        proto.STRING,
        number=3665484,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    expected_outages: MutableSequence[
        "InterconnectOutageNotification"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=264484123,
        message="InterconnectOutageNotification",
    )
    google_ip_address: str = proto.Field(
        proto.STRING,
        number=443105954,
        optional=True,
    )
    google_reference_id: str = proto.Field(
        proto.STRING,
        number=534944469,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    interconnect_attachments: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=425388415,
    )
    interconnect_groups: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=237049509,
    )
    interconnect_type: str = proto.Field(
        proto.STRING,
        number=515165259,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    link_type: str = proto.Field(
        proto.STRING,
        number=523207775,
        optional=True,
    )
    location: str = proto.Field(
        proto.STRING,
        number=290430901,
        optional=True,
    )
    macsec: "InterconnectMacsec" = proto.Field(
        proto.MESSAGE,
        number=528867490,
        optional=True,
        message="InterconnectMacsec",
    )
    macsec_enabled: bool = proto.Field(
        proto.BOOL,
        number=194203812,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    noc_contact_email: str = proto.Field(
        proto.STRING,
        number=14072832,
        optional=True,
    )
    operational_status: str = proto.Field(
        proto.STRING,
        number=201070847,
        optional=True,
    )
    peer_ip_address: str = proto.Field(
        proto.STRING,
        number=207735769,
        optional=True,
    )
    provisioned_link_count: int = proto.Field(
        proto.INT32,
        number=410888565,
        optional=True,
    )
    remote_location: str = proto.Field(
        proto.STRING,
        number=324388750,
        optional=True,
    )
    requested_features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=461240814,
    )
    requested_link_count: int = proto.Field(
        proto.INT32,
        number=45051387,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    wire_groups: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=40662734,
    )


class InterconnectApplicationAwareInterconnect(proto.Message):
    r"""Configuration information for application awareness on this
    Cloud Interconnect.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bandwidth_percentage_policy (google.cloud.compute_v1beta.types.InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy):

            This field is a member of `oneof`_ ``_bandwidth_percentage_policy``.
        profile_description (str):
            Description for the application awareness
            profile on this Cloud Interconnect.

            This field is a member of `oneof`_ ``_profile_description``.
        shape_average_percentages (MutableSequence[google.cloud.compute_v1beta.types.InterconnectApplicationAwareInterconnectBandwidthPercentage]):
            Optional field to specify a list of shape
            average percentages to be applied in conjunction
            with StrictPriorityPolicy or
            BandwidthPercentagePolicy.
        strict_priority_policy (google.cloud.compute_v1beta.types.InterconnectApplicationAwareInterconnectStrictPriorityPolicy):

            This field is a member of `oneof`_ ``_strict_priority_policy``.
    """

    bandwidth_percentage_policy: "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy" = proto.Field(
        proto.MESSAGE,
        number=187018857,
        optional=True,
        message="InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy",
    )
    profile_description: str = proto.Field(
        proto.STRING,
        number=262813286,
        optional=True,
    )
    shape_average_percentages: MutableSequence[
        "InterconnectApplicationAwareInterconnectBandwidthPercentage"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=259857497,
        message="InterconnectApplicationAwareInterconnectBandwidthPercentage",
    )
    strict_priority_policy: "InterconnectApplicationAwareInterconnectStrictPriorityPolicy" = proto.Field(
        proto.MESSAGE,
        number=145083063,
        optional=True,
        message="InterconnectApplicationAwareInterconnectStrictPriorityPolicy",
    )


class InterconnectApplicationAwareInterconnectBandwidthPercentage(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        percentage (int):
            Bandwidth percentage for a specific traffic
            class.

            This field is a member of `oneof`_ ``_percentage``.
        traffic_class (str):
            TrafficClass whose bandwidth percentage is
            being specified. Check the TrafficClass enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_traffic_class``.
    """

    class TrafficClass(proto.Enum):
        r"""TrafficClass whose bandwidth percentage is being specified.

        Values:
            UNDEFINED_TRAFFIC_CLASS (0):
                A value indicating that the enum field is not
                set.
            TC1 (82850):
                Traffic Class 1, corresponding to DSCP ranges
                (0-7) 000xxx.
            TC2 (82851):
                Traffic Class 2, corresponding to DSCP ranges
                (8-15) 001xxx.
            TC3 (82852):
                Traffic Class 3, corresponding to DSCP ranges
                (16-23) 010xxx.
            TC4 (82853):
                Traffic Class 4, corresponding to DSCP ranges
                (24-31) 011xxx.
            TC5 (82854):
                Traffic Class 5, corresponding to DSCP ranges
                (32-47) 10xxxx.
            TC6 (82855):
                Traffic Class 6, corresponding to DSCP ranges
                (48-63) 11xxxx.
        """
        UNDEFINED_TRAFFIC_CLASS = 0
        TC1 = 82850
        TC2 = 82851
        TC3 = 82852
        TC4 = 82853
        TC5 = 82854
        TC6 = 82855

    percentage: int = proto.Field(
        proto.UINT32,
        number=151909018,
        optional=True,
    )
    traffic_class: str = proto.Field(
        proto.STRING,
        number=198180022,
        optional=True,
    )


class InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy(proto.Message):
    r"""

    Attributes:
        bandwidth_percentages (MutableSequence[google.cloud.compute_v1beta.types.InterconnectApplicationAwareInterconnectBandwidthPercentage]):
            Specify bandwidth percentages for various
            traffic classes for queuing type Bandwidth
            Percent.
    """

    bandwidth_percentages: MutableSequence[
        "InterconnectApplicationAwareInterconnectBandwidthPercentage"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=233373323,
        message="InterconnectApplicationAwareInterconnectBandwidthPercentage",
    )


class InterconnectApplicationAwareInterconnectStrictPriorityPolicy(proto.Message):
    r"""Specify configuration for StrictPriorityPolicy."""


class InterconnectAttachment(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        admin_enabled (bool):
            Determines whether this Attachment will carry packets. Not
            present for PARTNER_PROVIDER.

            This field is a member of `oneof`_ ``_admin_enabled``.
        attachment_group (str):
            [Output Only] URL of the AttachmentGroup that includes this
            Attachment.

            This field is a member of `oneof`_ ``_attachment_group``.
        bandwidth (str):
            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 Check the Bandwidth enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_bandwidth``.
        candidate_cloud_router_ip_address (str):
            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.

            This field is a member of `oneof`_ ``_candidate_cloud_router_ip_address``.
        candidate_cloud_router_ipv6_address (str):
            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.

            This field is a member of `oneof`_ ``_candidate_cloud_router_ipv6_address``.
        candidate_customer_router_ip_address (str):
            Single IPv4 address + prefix length to be
            configured on the customer router interface for
            this interconnect attachment.

            This field is a member of `oneof`_ ``_candidate_customer_router_ip_address``.
        candidate_customer_router_ipv6_address (str):
            Single IPv6 address + prefix length to be
            configured on the customer router interface for
            this interconnect attachment.

            This field is a member of `oneof`_ ``_candidate_customer_router_ipv6_address``.
        candidate_ipv6_subnets (MutableSequence[str]):
            This field is not available.
        candidate_subnets (MutableSequence[str]):
            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.
        cloud_router_ip_address (str):
            [Output Only] IPv4 address + prefix length to be configured
            on Cloud Router Interface for this interconnect attachment.

            This field is a member of `oneof`_ ``_cloud_router_ip_address``.
        cloud_router_ipv6_address (str):
            [Output Only] IPv6 address + prefix length to be configured
            on Cloud Router Interface for this interconnect attachment.

            This field is a member of `oneof`_ ``_cloud_router_ipv6_address``.
        cloud_router_ipv6_interface_id (str):
            This field is not available.

            This field is a member of `oneof`_ ``_cloud_router_ipv6_interface_id``.
        configuration_constraints (google.cloud.compute_v1beta.types.InterconnectAttachmentConfigurationConstraints):
            [Output Only] Constraints for this attachment, if any. The
            attachment does not work if these constraints are not met.

            This field is a member of `oneof`_ ``_configuration_constraints``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        customer_router_ip_address (str):
            [Output Only] IPv4 address + prefix length to be configured
            on the customer router subinterface for this interconnect
            attachment.

            This field is a member of `oneof`_ ``_customer_router_ip_address``.
        customer_router_ipv6_address (str):
            [Output Only] IPv6 address + prefix length to be configured
            on the customer router subinterface for this interconnect
            attachment.

            This field is a member of `oneof`_ ``_customer_router_ipv6_address``.
        customer_router_ipv6_interface_id (str):
            This field is not available.

            This field is a member of `oneof`_ ``_customer_router_ipv6_interface_id``.
        dataplane_version (int):
            [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.

            This field is a member of `oneof`_ ``_dataplane_version``.
        description (str):
            An optional description of this resource.

            This field is a member of `oneof`_ ``_description``.
        edge_availability_domain (str):
            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. Check the EdgeAvailabilityDomain
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_edge_availability_domain``.
        encryption (str):
            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. Check the Encryption enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_encryption``.
        google_reference_id (str):
            [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.

            This field is a member of `oneof`_ ``_google_reference_id``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        interconnect (str):
            URL of the underlying Interconnect object
            that this attachment's traffic will traverse
            through.

            This field is a member of `oneof`_ ``_interconnect``.
        ipsec_internal_addresses (MutableSequence[str]):
            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.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#interconnectAttachment for interconnect attachments.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this InterconnectAttachment, which is
            essentially a hash of the labels set used for
            optimistic locking. The fingerprint is initially
            generated by Compute Engine and changes after
            every request to modify or update labels. You
            must always provide an up-to-date fingerprint
            hash in order to update or change labels,
            otherwise the request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve an
            InterconnectAttachment.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        mtu (int):
            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.

            This field is a member of `oneof`_ ``_mtu``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        operational_status (str):
            [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. Check the OperationalStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_operational_status``.
        pairing_key (str):
            [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".

            This field is a member of `oneof`_ ``_pairing_key``.
        partner_asn (int):
            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.

            This field is a member of `oneof`_ ``_partner_asn``.
        partner_metadata (google.cloud.compute_v1beta.types.InterconnectAttachmentPartnerMetadata):
            Informational metadata about Partner attachments from
            Partners to display to customers. Output only for PARTNER
            type, mutable for PARTNER_PROVIDER, not available for
            DEDICATED.

            This field is a member of `oneof`_ ``_partner_metadata``.
        private_interconnect_info (google.cloud.compute_v1beta.types.InterconnectAttachmentPrivateInfo):
            [Output Only] Information specific to an
            InterconnectAttachment. This property is populated if the
            interconnect that this is attached to is of type DEDICATED.

            This field is a member of `oneof`_ ``_private_interconnect_info``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        remote_service (str):
            [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.

            This field is a member of `oneof`_ ``_remote_service``.
        router (str):
            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.

            This field is a member of `oneof`_ ``_router``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        stack_type (str):
            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. Check the StackType enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_stack_type``.
        state (str):
            [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. Check the State enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_state``.
        subnet_length (int):
            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.

            This field is a member of `oneof`_ ``_subnet_length``.
        type_ (str):
            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. Check the Type enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_type``.
        vlan_tag8021q (int):
            The IEEE 802.1Q VLAN tag for this attachment,
            in the range 2-4093. Only specified at creation
            time.

            This field is a member of `oneof`_ ``_vlan_tag8021q``.
    """

    class Bandwidth(proto.Enum):
        r"""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

        Values:
            UNDEFINED_BANDWIDTH (0):
                A value indicating that the enum field is not
                set.
            BPS_100G (49547952):
                100 Gbit/s
            BPS_100M (49547958):
                100 Mbit/s
            BPS_10G (278693006):
                10 Gbit/s
            BPS_1G (355358448):
                1 Gbit/s
            BPS_200M (49577749):
                200 Mbit/s
            BPS_20G (278693967):
                20 Gbit/s
            BPS_2G (355358479):
                2 Gbit/s
            BPS_300M (49607540):
                300 Mbit/s
            BPS_400M (49637331):
                400 Mbit/s
            BPS_500M (49667122):
                500 Mbit/s
            BPS_50G (278696850):
                50 Gbit/s
            BPS_50M (278696856):
                50 Mbit/s
            BPS_5G (355358572):
                5 Gbit/s
        """
        UNDEFINED_BANDWIDTH = 0
        BPS_100G = 49547952
        BPS_100M = 49547958
        BPS_10G = 278693006
        BPS_1G = 355358448
        BPS_200M = 49577749
        BPS_20G = 278693967
        BPS_2G = 355358479
        BPS_300M = 49607540
        BPS_400M = 49637331
        BPS_500M = 49667122
        BPS_50G = 278696850
        BPS_50M = 278696856
        BPS_5G = 355358572

    class EdgeAvailabilityDomain(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_EDGE_AVAILABILITY_DOMAIN (0):
                A value indicating that the enum field is not
                set.
            AVAILABILITY_DOMAIN_1 (349552090):
                No description available.
            AVAILABILITY_DOMAIN_2 (349552091):
                No description available.
            AVAILABILITY_DOMAIN_ANY (375256373):
                No description available.
        """
        UNDEFINED_EDGE_AVAILABILITY_DOMAIN = 0
        AVAILABILITY_DOMAIN_1 = 349552090
        AVAILABILITY_DOMAIN_2 = 349552091
        AVAILABILITY_DOMAIN_ANY = 375256373

    class Encryption(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_ENCRYPTION (0):
                A value indicating that the enum field is not
                set.
            IPSEC (69882282):
                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 (2402104):
                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.
        """
        UNDEFINED_ENCRYPTION = 0
        IPSEC = 69882282
        NONE = 2402104

    class OperationalStatus(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_OPERATIONAL_STATUS (0):
                A value indicating that the enum field is not
                set.
            OS_ACTIVE (55721409):
                Indicates that attachment has been turned up
                and is ready to use.
            OS_UNPROVISIONED (239771840):
                Indicates that attachment is not ready to use
                yet, because turnup is not complete.
        """
        UNDEFINED_OPERATIONAL_STATUS = 0
        OS_ACTIVE = 55721409
        OS_UNPROVISIONED = 239771840

    class StackType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_STACK_TYPE (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                The interconnect attachment can have both
                IPv4 and IPv6 addresses.
            IPV4_ONLY (22373798):
                The interconnect attachment will only be
                assigned IPv4 addresses.
        """
        UNDEFINED_STACK_TYPE = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798

    class State(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                Indicates that attachment has been turned up
                and is ready to use.
            DEFUNCT (115891759):
                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 (513587304):
                A PARTNER attachment is in the process of provisioning after
                a PARTNER_PROVIDER attachment was created that references
                it.
            PENDING_CUSTOMER (167494054):
                PARTNER or PARTNER_PROVIDER attachment that is waiting for
                the customer to activate.
            PENDING_PARTNER (387890656):
                A newly created PARTNER attachment that has
                not yet been configured on the Partner side.
            STATE_UNSPECIFIED (470755401):
                No description available.
            UNPROVISIONED (517333979):
                Indicates that attachment is not ready to use
                yet, because turnup is not complete.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        DEFUNCT = 115891759
        PARTNER_REQUEST_RECEIVED = 513587304
        PENDING_CUSTOMER = 167494054
        PENDING_PARTNER = 387890656
        STATE_UNSPECIFIED = 470755401
        UNPROVISIONED = 517333979

    class Type(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            DEDICATED (258411983):
                Attachment to a dedicated interconnect.
            PARTNER (461924520):
                Attachment to a partner interconnect, created
                by the customer.
            PARTNER_PROVIDER (483261352):
                Attachment to a partner interconnect, created
                by the partner.
        """
        UNDEFINED_TYPE = 0
        DEDICATED = 258411983
        PARTNER = 461924520
        PARTNER_PROVIDER = 483261352

    admin_enabled: bool = proto.Field(
        proto.BOOL,
        number=445675089,
        optional=True,
    )
    attachment_group: str = proto.Field(
        proto.STRING,
        number=63442019,
        optional=True,
    )
    bandwidth: str = proto.Field(
        proto.STRING,
        number=181715121,
        optional=True,
    )
    candidate_cloud_router_ip_address: str = proto.Field(
        proto.STRING,
        number=311379276,
        optional=True,
    )
    candidate_cloud_router_ipv6_address: str = proto.Field(
        proto.STRING,
        number=417499660,
        optional=True,
    )
    candidate_customer_router_ip_address: str = proto.Field(
        proto.STRING,
        number=339113389,
        optional=True,
    )
    candidate_customer_router_ipv6_address: str = proto.Field(
        proto.STRING,
        number=226436653,
        optional=True,
    )
    candidate_ipv6_subnets: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=70682522,
    )
    candidate_subnets: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=237842938,
    )
    cloud_router_ip_address: str = proto.Field(
        proto.STRING,
        number=287392776,
        optional=True,
    )
    cloud_router_ipv6_address: str = proto.Field(
        proto.STRING,
        number=451922376,
        optional=True,
    )
    cloud_router_ipv6_interface_id: str = proto.Field(
        proto.STRING,
        number=521282701,
        optional=True,
    )
    configuration_constraints: "InterconnectAttachmentConfigurationConstraints" = (
        proto.Field(
            proto.MESSAGE,
            number=179681389,
            optional=True,
            message="InterconnectAttachmentConfigurationConstraints",
        )
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    customer_router_ip_address: str = proto.Field(
        proto.STRING,
        number=332475761,
        optional=True,
    )
    customer_router_ipv6_address: str = proto.Field(
        proto.STRING,
        number=290127089,
        optional=True,
    )
    customer_router_ipv6_interface_id: str = proto.Field(
        proto.STRING,
        number=380994308,
        optional=True,
    )
    dataplane_version: int = proto.Field(
        proto.INT32,
        number=34920075,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    edge_availability_domain: str = proto.Field(
        proto.STRING,
        number=71289510,
        optional=True,
    )
    encryption: str = proto.Field(
        proto.STRING,
        number=97980291,
        optional=True,
    )
    google_reference_id: str = proto.Field(
        proto.STRING,
        number=534944469,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
        optional=True,
    )
    ipsec_internal_addresses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=407648565,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    mtu: int = proto.Field(
        proto.INT32,
        number=108462,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    operational_status: str = proto.Field(
        proto.STRING,
        number=201070847,
        optional=True,
    )
    pairing_key: str = proto.Field(
        proto.STRING,
        number=439695464,
        optional=True,
    )
    partner_asn: int = proto.Field(
        proto.INT64,
        number=438166149,
        optional=True,
    )
    partner_metadata: "InterconnectAttachmentPartnerMetadata" = proto.Field(
        proto.MESSAGE,
        number=65908934,
        optional=True,
        message="InterconnectAttachmentPartnerMetadata",
    )
    private_interconnect_info: "InterconnectAttachmentPrivateInfo" = proto.Field(
        proto.MESSAGE,
        number=237270531,
        optional=True,
        message="InterconnectAttachmentPrivateInfo",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    remote_service: str = proto.Field(
        proto.STRING,
        number=391954364,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    stack_type: str = proto.Field(
        proto.STRING,
        number=425908881,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    subnet_length: int = proto.Field(
        proto.INT32,
        number=279831048,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    vlan_tag8021q: int = proto.Field(
        proto.INT32,
        number=119927836,
        optional=True,
    )


class InterconnectAttachmentAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.InterconnectAttachmentsScopedList]):
            A list of InterconnectAttachmentsScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#interconnectAttachmentAggregatedList for aggregated
            lists of interconnect attachments.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "InterconnectAttachmentsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="InterconnectAttachmentsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectAttachmentConfigurationConstraints(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bgp_md5 (str):
            [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. Check the BgpMd5 enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_bgp_md5``.
        bgp_peer_asn_ranges (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange]):
            [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.
    """

    class BgpMd5(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_BGP_MD5 (0):
                A value indicating that the enum field is not
                set.
            MD5_OPTIONAL (532156673):
                MD5_OPTIONAL: BGP MD5 authentication is supported and can
                optionally be configured.
            MD5_REQUIRED (218034496):
                MD5_REQUIRED: BGP MD5 authentication must be configured.
            MD5_UNSUPPORTED (86962388):
                MD5_UNSUPPORTED: BGP MD5 authentication must not be
                configured
        """
        UNDEFINED_BGP_MD5 = 0
        MD5_OPTIONAL = 532156673
        MD5_REQUIRED = 218034496
        MD5_UNSUPPORTED = 86962388

    bgp_md5: str = proto.Field(
        proto.STRING,
        number=373093386,
        optional=True,
    )
    bgp_peer_asn_ranges: MutableSequence[
        "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=475946370,
        message="InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange",
    )


class InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_ (int):

            This field is a member of `oneof`_ ``_max``.
        min_ (int):

            This field is a member of `oneof`_ ``_min``.
    """

    max_: int = proto.Field(
        proto.UINT32,
        number=107876,
        optional=True,
    )
    min_: int = proto.Field(
        proto.UINT32,
        number=108114,
        optional=True,
    )


class InterconnectAttachmentGroup(proto.Message):
    r"""An interconnect attachment group resource allows customers to
    create, analyze, and expand highly available deployments.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attachments (MutableMapping[str, google.cloud.compute_v1beta.types.InterconnectAttachmentGroupAttachment]):
            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.
        configured (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupConfigured):

            This field is a member of `oneof`_ ``_configured``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        etag (str):
            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.

            This field is a member of `oneof`_ ``_etag``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        intent (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupIntent):

            This field is a member of `oneof`_ ``_intent``.
        interconnect_group (str):
            The URL of an InterconnectGroup that groups
            these Attachments' Interconnects. Customers do
            not need to set this unless directed by Google
            Support.

            This field is a member of `oneof`_ ``_interconnect_group``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#interconnectAttachmentGroup.

            This field is a member of `oneof`_ ``_kind``.
        logical_structure (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupLogicalStructure):

            This field is a member of `oneof`_ ``_logical_structure``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    attachments: MutableMapping[
        str, "InterconnectAttachmentGroupAttachment"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=334744496,
        message="InterconnectAttachmentGroupAttachment",
    )
    configured: "InterconnectAttachmentGroupConfigured" = proto.Field(
        proto.MESSAGE,
        number=295631422,
        optional=True,
        message="InterconnectAttachmentGroupConfigured",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    intent: "InterconnectAttachmentGroupIntent" = proto.Field(
        proto.MESSAGE,
        number=426849948,
        optional=True,
        message="InterconnectAttachmentGroupIntent",
    )
    interconnect_group: str = proto.Field(
        proto.STRING,
        number=388651918,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    logical_structure: "InterconnectAttachmentGroupLogicalStructure" = proto.Field(
        proto.MESSAGE,
        number=142412989,
        optional=True,
        message="InterconnectAttachmentGroupLogicalStructure",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class InterconnectAttachmentGroupAttachment(proto.Message):
    r"""An Attachment in this AttachmentGroup.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attachment (str):

            This field is a member of `oneof`_ ``_attachment``.
    """

    attachment: str = proto.Field(
        proto.STRING,
        number=183982371,
        optional=True,
    )


class InterconnectAttachmentGroupConfigured(proto.Message):
    r"""[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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        availability_sla (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupConfiguredAvailabilitySLA):

            This field is a member of `oneof`_ ``_availability_sla``.
    """

    availability_sla: "InterconnectAttachmentGroupConfiguredAvailabilitySLA" = (
        proto.Field(
            proto.MESSAGE,
            number=472702020,
            optional=True,
            message="InterconnectAttachmentGroupConfiguredAvailabilitySLA",
        )
    )


class InterconnectAttachmentGroupConfiguredAvailabilitySLA(proto.Message):
    r"""[Output Only] Which SLA this group is configured to support, and why
    this group does or does not meet that SLA's requirements.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        effective_sla (str):
            Check the EffectiveSla enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_effective_sla``.
        intended_sla_blockers (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers]):

    """

    class EffectiveSla(proto.Enum):
        r"""

        Values:
            UNDEFINED_EFFECTIVE_SLA (0):
                A value indicating that the enum field is not
                set.
            EFFECTIVE_SLA_UNSPECIFIED (491000744):
                No description available.
            NO_SLA (161460618):
                No description available.
            PRODUCTION_CRITICAL (470416485):
                No description available.
            PRODUCTION_NON_CRITICAL (117399223):
                No description available.
        """
        UNDEFINED_EFFECTIVE_SLA = 0
        EFFECTIVE_SLA_UNSPECIFIED = 491000744
        NO_SLA = 161460618
        PRODUCTION_CRITICAL = 470416485
        PRODUCTION_NON_CRITICAL = 117399223

    effective_sla: str = proto.Field(
        proto.STRING,
        number=144173712,
        optional=True,
    )
    intended_sla_blockers: MutableSequence[
        "InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=448370308,
        message="InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers",
    )


class InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers(
    proto.Message
):
    r"""[Output Only] Reasons why configuration.availabilitySLA.sla differs
    from intent.availabilitySLA. This list is empty if and only if those
    are the same.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attachments (MutableSequence[str]):
            [Output Only] URLs of any particular Attachments to explain
            this blocker in more detail.
        blocker_type (str):
            Check the BlockerType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_blocker_type``.
        documentation_link (str):
            [Output Only] The url of Google Cloud public documentation
            explaining this requirement. This is set for every type of
            requirement.

            This field is a member of `oneof`_ ``_documentation_link``.
        explanation (str):
            [Output Only] A human-readable explanation of this
            requirement and why it's not met. This is set for every type
            of requirement.

            This field is a member of `oneof`_ ``_explanation``.
        metros (MutableSequence[str]):
            [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.
        regions (MutableSequence[str]):
            [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.
        zones (MutableSequence[str]):
            [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.
    """

    class BlockerType(proto.Enum):
        r"""

        Values:
            UNDEFINED_BLOCKER_TYPE (0):
                A value indicating that the enum field is not
                set.
            BLOCKER_TYPE_UNSPECIFIED (429793623):
                No description available.
            INCOMPATIBLE_METROS (290410432):
                No description available.
            INCOMPATIBLE_REGIONS (6195033):
                No description available.
            MISSING_GLOBAL_ROUTING (165913635):
                No description available.
            NO_ATTACHMENTS (456535570):
                No description available.
            NO_ATTACHMENTS_IN_METRO_AND_ZONE (51684135):
                No description available.
            OTHER (75532016):
                No description available.
        """
        UNDEFINED_BLOCKER_TYPE = 0
        BLOCKER_TYPE_UNSPECIFIED = 429793623
        INCOMPATIBLE_METROS = 290410432
        INCOMPATIBLE_REGIONS = 6195033
        MISSING_GLOBAL_ROUTING = 165913635
        NO_ATTACHMENTS = 456535570
        NO_ATTACHMENTS_IN_METRO_AND_ZONE = 51684135
        OTHER = 75532016

    attachments: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=334744496,
    )
    blocker_type: str = proto.Field(
        proto.STRING,
        number=381194847,
        optional=True,
    )
    documentation_link: str = proto.Field(
        proto.STRING,
        number=93465183,
        optional=True,
    )
    explanation: str = proto.Field(
        proto.STRING,
        number=504745497,
        optional=True,
    )
    metros: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=533067386,
    )
    regions: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=12367871,
    )
    zones: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=116085319,
    )


class InterconnectAttachmentGroupIntent(proto.Message):
    r"""The user's intent for this AttachmentGroup. This is the only
    required field besides the name that must be specified on group
    creation.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        availability_sla (str):
            Check the AvailabilitySla enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_availability_sla``.
    """

    class AvailabilitySla(proto.Enum):
        r"""

        Values:
            UNDEFINED_AVAILABILITY_SLA (0):
                A value indicating that the enum field is not
                set.
            AVAILABILITY_SLA_UNSPECIFIED (11186044):
                No description available.
            NO_SLA (161460618):
                No description available.
            PRODUCTION_CRITICAL (470416485):
                No description available.
            PRODUCTION_NON_CRITICAL (117399223):
                No description available.
        """
        UNDEFINED_AVAILABILITY_SLA = 0
        AVAILABILITY_SLA_UNSPECIFIED = 11186044
        NO_SLA = 161460618
        PRODUCTION_CRITICAL = 470416485
        PRODUCTION_NON_CRITICAL = 117399223

    availability_sla: str = proto.Field(
        proto.STRING,
        number=472702020,
        optional=True,
    )


class InterconnectAttachmentGroupLogicalStructure(proto.Message):
    r"""[Output Only] An analysis of the logical layout of Attachments in
    this group. Every Attachment in the group is shown once in this
    structure.

    Attributes:
        regions (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentGroupLogicalStructureRegion]):

    """

    regions: MutableSequence[
        "InterconnectAttachmentGroupLogicalStructureRegion"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=12367871,
        message="InterconnectAttachmentGroupLogicalStructureRegion",
    )


class InterconnectAttachmentGroupLogicalStructureRegion(proto.Message):
    r"""[Output Only] The regions Attachments in this group are in.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        metros (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentGroupLogicalStructureRegionMetro]):

        region (str):
            [Output Only] The name of a region, like "us-central1".

            This field is a member of `oneof`_ ``_region``.
    """

    metros: MutableSequence[
        "InterconnectAttachmentGroupLogicalStructureRegionMetro"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=533067386,
        message="InterconnectAttachmentGroupLogicalStructureRegionMetro",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )


class InterconnectAttachmentGroupLogicalStructureRegionMetro(proto.Message):
    r"""[Output Only] The metros of Attachments in this group in this
    region.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        facilities (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility]):

        metro (str):
            [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.

            This field is a member of `oneof`_ ``_metro``.
    """

    facilities: MutableSequence[
        "InterconnectAttachmentGroupLogicalStructureRegionMetroFacility"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=536683137,
        message="InterconnectAttachmentGroupLogicalStructureRegionMetroFacility",
    )
    metro: str = proto.Field(
        proto.STRING,
        number=103787801,
        optional=True,
    )


class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility(proto.Message):
    r"""[Output Only] The facilities used for this group's Attachments'
    Interconnects.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        facility (str):
            [Output Only] The name of a facility, like "iad-1234".

            This field is a member of `oneof`_ ``_facility``.
        zones (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone]):

    """

    facility: str = proto.Field(
        proto.STRING,
        number=501116579,
        optional=True,
    )
    zones: MutableSequence[
        "InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=116085319,
        message="InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone",
    )


class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone(proto.Message):
    r"""[Output Only] The zones that Attachments in this group are present
    in, in the given facilities. This is inherited from their
    Interconnects.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attachments (MutableSequence[str]):
            [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.
        zone (str):
            [Output Only] The name of a zone, either "zone1" or "zone2".

            This field is a member of `oneof`_ ``_zone``.
    """

    attachments: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=334744496,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InterconnectAttachmentGroupsGetOperationalStatusResponse(proto.Message):
    r"""Response for the
    InterconnectAttachmentGroupsGetOperationalStatusResponse.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        result (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupsOperationalStatus):

            This field is a member of `oneof`_ ``_result``.
    """

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    result: "InterconnectAttachmentGroupsOperationalStatus" = proto.Field(
        proto.MESSAGE,
        number=139315229,
        optional=True,
        message="InterconnectAttachmentGroupsOperationalStatus",
    )


class InterconnectAttachmentGroupsListResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentGroup]):
            A list of InterconnectAttachmentGroup
            resources.
        kind (str):

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InterconnectAttachmentGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InterconnectAttachmentGroup",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectAttachmentGroupsOperationalStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attachment_statuses (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachmentGroupsOperationalStatusAttachmentStatus]):

        configured (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupConfigured):

            This field is a member of `oneof`_ ``_configured``.
        group_status (str):
            Summarizes the status of the group.
            Check the GroupStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_group_status``.
        intent (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupIntent):

            This field is a member of `oneof`_ ``_intent``.
        operational (google.cloud.compute_v1beta.types.InterconnectAttachmentGroupConfigured):
            The operational state of the group, including
            only active Attachments.

            This field is a member of `oneof`_ ``_operational``.
    """

    class GroupStatus(proto.Enum):
        r"""Summarizes the status of the group.

        Values:
            UNDEFINED_GROUP_STATUS (0):
                A value indicating that the enum field is not
                set.
            DEGRADED (396890926):
                No description available.
            FULLY_DOWN (255514647):
                No description available.
            FULLY_UP (504176464):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_GROUP_STATUS = 0
        DEGRADED = 396890926
        FULLY_DOWN = 255514647
        FULLY_UP = 504176464
        UNSPECIFIED = 526786327

    attachment_statuses: MutableSequence[
        "InterconnectAttachmentGroupsOperationalStatusAttachmentStatus"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=491132860,
        message="InterconnectAttachmentGroupsOperationalStatusAttachmentStatus",
    )
    configured: "InterconnectAttachmentGroupConfigured" = proto.Field(
        proto.MESSAGE,
        number=295631422,
        optional=True,
        message="InterconnectAttachmentGroupConfigured",
    )
    group_status: str = proto.Field(
        proto.STRING,
        number=338778546,
        optional=True,
    )
    intent: "InterconnectAttachmentGroupIntent" = proto.Field(
        proto.MESSAGE,
        number=426849948,
        optional=True,
        message="InterconnectAttachmentGroupIntent",
    )
    operational: "InterconnectAttachmentGroupConfigured" = proto.Field(
        proto.MESSAGE,
        number=129704914,
        optional=True,
        message="InterconnectAttachmentGroupConfigured",
    )


class InterconnectAttachmentGroupsOperationalStatusAttachmentStatus(proto.Message):
    r"""The status of one Attachment in the group. List order is
    arbitrary.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        admin_enabled (bool):
            Whether this Attachment is enabled. This
            becomes false when the customer drains their
            Attachment.

            This field is a member of `oneof`_ ``_admin_enabled``.
        attachment (str):
            The URL of the Attachment being described.

            This field is a member of `oneof`_ ``_attachment``.
        is_active (str):
            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. Check the IsActive enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_is_active``.
        status (str):
            Whether this Attachment is active, and if so, whether BGP is
            up. This is based on the statuses available in the Pantheon
            UI here:
            http://google3/java/com/google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto
            Check the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class IsActive(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_IS_ACTIVE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                No description available.
            INACTIVE (270421099):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_IS_ACTIVE = 0
        ACTIVE = 314733318
        INACTIVE = 270421099
        UNSPECIFIED = 526786327

    class Status(proto.Enum):
        r"""Whether this Attachment is active, and if so, whether BGP is up.
        This is based on the statuses available in the Pantheon UI here:
        http://google3/java/com/google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ATTACHMENT_STATUS_UNKNOWN (472477561):
                No description available.
            CONNECTION_DISABLED (432687805):
                No description available.
            CONNECTION_DOWN (267552099):
                No description available.
            CONNECTION_UP (455585692):
                No description available.
            DEFUNCT (115891759):
                No description available.
            IPSEC_CONFIGURATION_NEEDED_STATUS (455203582):
                No description available.
            IPSEC_READY_TO_RESUME_FLOW_STATUS (384830596):
                No description available.
            IPV4_DOWN_IPV6_UP (277490992):
                No description available.
            IPV4_UP_IPV6_DOWN (316051248):
                No description available.
            PARTNER_REQUEST_RECEIVED (513587304):
                No description available.
            PENDING_CUSTOMER (167494054):
                No description available.
            PENDING_PARTNER (387890656):
                No description available.
            PROVISIONED (355751956):
                No description available.
            ROUTER_CONFIGURATION_BROKEN (150505108):
                No description available.
            UNPROVISIONED (517333979):
                No description available.
        """
        UNDEFINED_STATUS = 0
        ATTACHMENT_STATUS_UNKNOWN = 472477561
        CONNECTION_DISABLED = 432687805
        CONNECTION_DOWN = 267552099
        CONNECTION_UP = 455585692
        DEFUNCT = 115891759
        IPSEC_CONFIGURATION_NEEDED_STATUS = 455203582
        IPSEC_READY_TO_RESUME_FLOW_STATUS = 384830596
        IPV4_DOWN_IPV6_UP = 277490992
        IPV4_UP_IPV6_DOWN = 316051248
        PARTNER_REQUEST_RECEIVED = 513587304
        PENDING_CUSTOMER = 167494054
        PENDING_PARTNER = 387890656
        PROVISIONED = 355751956
        ROUTER_CONFIGURATION_BROKEN = 150505108
        UNPROVISIONED = 517333979

    admin_enabled: bool = proto.Field(
        proto.BOOL,
        number=445675089,
        optional=True,
    )
    attachment: str = proto.Field(
        proto.STRING,
        number=183982371,
        optional=True,
    )
    is_active: str = proto.Field(
        proto.STRING,
        number=114830267,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class InterconnectAttachmentList(proto.Message):
    r"""Response to the list request, and contains a list of
    interconnect attachments.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachment]):
            A list of InterconnectAttachment resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#interconnectAttachmentList for lists of interconnect
            attachments.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InterconnectAttachment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InterconnectAttachment",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectAttachmentPartnerMetadata(proto.Message):
    r"""Informational metadata about Partner attachments from Partners to
    display to customers. These fields are propagated from
    PARTNER_PROVIDER attachments to their corresponding PARTNER
    attachments.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_name (str):
            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.

            This field is a member of `oneof`_ ``_interconnect_name``.
        partner_name (str):
            Plain text name of the Partner providing this
            attachment. This value may be validated to match
            approved Partner values.

            This field is a member of `oneof`_ ``_partner_name``.
        portal_url (str):
            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.

            This field is a member of `oneof`_ ``_portal_url``.
    """

    interconnect_name: str = proto.Field(
        proto.STRING,
        number=514963356,
        optional=True,
    )
    partner_name: str = proto.Field(
        proto.STRING,
        number=161747874,
        optional=True,
    )
    portal_url: str = proto.Field(
        proto.STRING,
        number=269182748,
        optional=True,
    )


class InterconnectAttachmentPrivateInfo(proto.Message):
    r"""Information for an interconnect attachment when this belongs
    to an interconnect of type DEDICATED.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        tag8021q (int):
            [Output Only] 802.1q encapsulation tag to be used for
            traffic between Google and the customer, going to and from
            this network and region.

            This field is a member of `oneof`_ ``_tag8021q``.
    """

    tag8021q: int = proto.Field(
        proto.UINT32,
        number=271820992,
        optional=True,
    )


class InterconnectAttachmentsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_attachments (MutableSequence[google.cloud.compute_v1beta.types.InterconnectAttachment]):
            A list of interconnect attachments contained
            in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of addresses when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    interconnect_attachments: MutableSequence[
        "InterconnectAttachment"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=425388415,
        message="InterconnectAttachment",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectCircuitInfo(proto.Message):
    r"""Describes a single physical circuit between the Customer and
    Google. CircuitInfo objects are created by Google, so all fields
    are output only.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        customer_demarc_id (str):
            Customer-side demarc ID for this circuit.

            This field is a member of `oneof`_ ``_customer_demarc_id``.
        google_circuit_id (str):
            Google-assigned unique ID for this circuit.
            Assigned at circuit turn-up.

            This field is a member of `oneof`_ ``_google_circuit_id``.
        google_demarc_id (str):
            Google-side demarc ID for this circuit.
            Assigned at circuit turn-up and provided by
            Google to the customer in the LOA.

            This field is a member of `oneof`_ ``_google_demarc_id``.
    """

    customer_demarc_id: str = proto.Field(
        proto.STRING,
        number=28771859,
        optional=True,
    )
    google_circuit_id: str = proto.Field(
        proto.STRING,
        number=262014711,
        optional=True,
    )
    google_demarc_id: str = proto.Field(
        proto.STRING,
        number=448196270,
        optional=True,
    )


class InterconnectDiagnostics(proto.Message):
    r"""Diagnostics information about the Interconnect connection,
    which contains detailed and current technical information about
    Google's side of the connection.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        arp_caches (MutableSequence[google.cloud.compute_v1beta.types.InterconnectDiagnosticsARPEntry]):
            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.
        bundle_aggregation_type (str):
            The aggregation type of the bundle interface.
            Check the BundleAggregationType enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_bundle_aggregation_type``.
        bundle_operational_status (str):
            The operational status of the bundle
            interface. Check the BundleOperationalStatus
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_bundle_operational_status``.
        links (MutableSequence[google.cloud.compute_v1beta.types.InterconnectDiagnosticsLinkStatus]):
            A list of InterconnectDiagnostics.LinkStatus
            objects, describing the status for each link on
            the Interconnect.
        mac_address (str):
            The MAC address of the Interconnect's bundle
            interface.

            This field is a member of `oneof`_ ``_mac_address``.
    """

    class BundleAggregationType(proto.Enum):
        r"""The aggregation type of the bundle interface.

        Values:
            UNDEFINED_BUNDLE_AGGREGATION_TYPE (0):
                A value indicating that the enum field is not
                set.
            BUNDLE_AGGREGATION_TYPE_LACP (27758925):
                LACP is enabled.
            BUNDLE_AGGREGATION_TYPE_STATIC (50678873):
                LACP is disabled.
        """
        UNDEFINED_BUNDLE_AGGREGATION_TYPE = 0
        BUNDLE_AGGREGATION_TYPE_LACP = 27758925
        BUNDLE_AGGREGATION_TYPE_STATIC = 50678873

    class BundleOperationalStatus(proto.Enum):
        r"""The operational status of the bundle interface.

        Values:
            UNDEFINED_BUNDLE_OPERATIONAL_STATUS (0):
                A value indicating that the enum field is not
                set.
            BUNDLE_OPERATIONAL_STATUS_DOWN (453842693):
                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 (161366462):
                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.
        """
        UNDEFINED_BUNDLE_OPERATIONAL_STATUS = 0
        BUNDLE_OPERATIONAL_STATUS_DOWN = 453842693
        BUNDLE_OPERATIONAL_STATUS_UP = 161366462

    arp_caches: MutableSequence[
        "InterconnectDiagnosticsARPEntry"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=414591761,
        message="InterconnectDiagnosticsARPEntry",
    )
    bundle_aggregation_type: str = proto.Field(
        proto.STRING,
        number=434939028,
        optional=True,
    )
    bundle_operational_status: str = proto.Field(
        proto.STRING,
        number=106433500,
        optional=True,
    )
    links: MutableSequence["InterconnectDiagnosticsLinkStatus"] = proto.RepeatedField(
        proto.MESSAGE,
        number=102977465,
        message="InterconnectDiagnosticsLinkStatus",
    )
    mac_address: str = proto.Field(
        proto.STRING,
        number=332540164,
        optional=True,
    )


class InterconnectDiagnosticsARPEntry(proto.Message):
    r"""Describing the ARP neighbor entries seen on this link

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_address (str):
            The IP address of this ARP neighbor.

            This field is a member of `oneof`_ ``_ip_address``.
        mac_address (str):
            The MAC address of this ARP neighbor.

            This field is a member of `oneof`_ ``_mac_address``.
    """

    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    mac_address: str = proto.Field(
        proto.STRING,
        number=332540164,
        optional=True,
    )


class InterconnectDiagnosticsLinkLACPStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        google_system_id (str):
            System ID of the port on Google's side of the
            LACP exchange.

            This field is a member of `oneof`_ ``_google_system_id``.
        neighbor_system_id (str):
            System ID of the port on the neighbor's side
            of the LACP exchange.

            This field is a member of `oneof`_ ``_neighbor_system_id``.
        state (str):
            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. Check the State enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_state``.
    """

    class State(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                The link is configured and active within the
                bundle.
            DETACHED (216562546):
                The link is not configured within the bundle,
                this means the rest of the object should be
                empty.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        DETACHED = 216562546

    google_system_id: str = proto.Field(
        proto.STRING,
        number=91210405,
        optional=True,
    )
    neighbor_system_id: str = proto.Field(
        proto.STRING,
        number=343821342,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )


class InterconnectDiagnosticsLinkOpticalPower(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        state (str):
            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. Check the State enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_state``.
        value (float):
            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.

            This field is a member of `oneof`_ ``_value``.
    """

    class State(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            HIGH_ALARM (305363284):
                The value has crossed above the high alarm
                threshold.
            HIGH_WARNING (220984799):
                The value of the current optical power has
                crossed above the high warning threshold.
            LOW_ALARM (316659046):
                The value of the current optical power has
                crossed below the low alarm threshold.
            LOW_WARNING (338793841):
                The value of the current optical power has
                crossed below the low warning threshold.
            OK (2524):
                The value of the current optical power has
                not crossed a warning threshold.
        """
        UNDEFINED_STATE = 0
        HIGH_ALARM = 305363284
        HIGH_WARNING = 220984799
        LOW_ALARM = 316659046
        LOW_WARNING = 338793841
        OK = 2524

    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    value: float = proto.Field(
        proto.FLOAT,
        number=111972721,
        optional=True,
    )


class InterconnectDiagnosticsLinkStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        arp_caches (MutableSequence[google.cloud.compute_v1beta.types.InterconnectDiagnosticsARPEntry]):
            A list of InterconnectDiagnostics.ARPEntry
            objects, describing the ARP neighbor entries
            seen on this link. This will be empty if the
            link is bundled
        circuit_id (str):
            The unique ID for this link assigned during
            turn up by Google.

            This field is a member of `oneof`_ ``_circuit_id``.
        google_demarc (str):
            The Demarc address assigned by Google and
            provided in the LoA.

            This field is a member of `oneof`_ ``_google_demarc``.
        lacp_status (google.cloud.compute_v1beta.types.InterconnectDiagnosticsLinkLACPStatus):

            This field is a member of `oneof`_ ``_lacp_status``.
        macsec (google.cloud.compute_v1beta.types.InterconnectDiagnosticsMacsecStatus):
            Describes the status of MACsec encryption on
            this link.

            This field is a member of `oneof`_ ``_macsec``.
        operational_status (str):
            The operational status of the link.
            Check the OperationalStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_operational_status``.
        receiving_optical_power (google.cloud.compute_v1beta.types.InterconnectDiagnosticsLinkOpticalPower):
            An InterconnectDiagnostics.LinkOpticalPower
            object, describing the current value and status
            of the received light level.

            This field is a member of `oneof`_ ``_receiving_optical_power``.
        transmitting_optical_power (google.cloud.compute_v1beta.types.InterconnectDiagnosticsLinkOpticalPower):
            An InterconnectDiagnostics.LinkOpticalPower
            object, describing the current value and status
            of the transmitted light level.

            This field is a member of `oneof`_ ``_transmitting_optical_power``.
    """

    class OperationalStatus(proto.Enum):
        r"""The operational status of the link.

        Values:
            UNDEFINED_OPERATIONAL_STATUS (0):
                A value indicating that the enum field is not
                set.
            LINK_OPERATIONAL_STATUS_DOWN (281653885):
                The interface is unable to communicate with
                the remote end.
            LINK_OPERATIONAL_STATUS_UP (305879862):
                The interface has low level communication
                with the remote end.
        """
        UNDEFINED_OPERATIONAL_STATUS = 0
        LINK_OPERATIONAL_STATUS_DOWN = 281653885
        LINK_OPERATIONAL_STATUS_UP = 305879862

    arp_caches: MutableSequence[
        "InterconnectDiagnosticsARPEntry"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=414591761,
        message="InterconnectDiagnosticsARPEntry",
    )
    circuit_id: str = proto.Field(
        proto.STRING,
        number=225180977,
        optional=True,
    )
    google_demarc: str = proto.Field(
        proto.STRING,
        number=51084,
        optional=True,
    )
    lacp_status: "InterconnectDiagnosticsLinkLACPStatus" = proto.Field(
        proto.MESSAGE,
        number=361210415,
        optional=True,
        message="InterconnectDiagnosticsLinkLACPStatus",
    )
    macsec: "InterconnectDiagnosticsMacsecStatus" = proto.Field(
        proto.MESSAGE,
        number=528867490,
        optional=True,
        message="InterconnectDiagnosticsMacsecStatus",
    )
    operational_status: str = proto.Field(
        proto.STRING,
        number=201070847,
        optional=True,
    )
    receiving_optical_power: "InterconnectDiagnosticsLinkOpticalPower" = proto.Field(
        proto.MESSAGE,
        number=244717279,
        optional=True,
        message="InterconnectDiagnosticsLinkOpticalPower",
    )
    transmitting_optical_power: "InterconnectDiagnosticsLinkOpticalPower" = proto.Field(
        proto.MESSAGE,
        number=459431197,
        optional=True,
        message="InterconnectDiagnosticsLinkOpticalPower",
    )


class InterconnectDiagnosticsMacsecStatus(proto.Message):
    r"""Describes the status of MACsec encryption on the link.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ckn (str):
            Indicates the Connectivity Association Key
            Name (CKN) currently being used if MACsec is
            operational.

            This field is a member of `oneof`_ ``_ckn``.
        operational (bool):
            Indicates whether or not MACsec is
            operational on this link.

            This field is a member of `oneof`_ ``_operational``.
    """

    ckn: str = proto.Field(
        proto.STRING,
        number=98566,
        optional=True,
    )
    operational: bool = proto.Field(
        proto.BOOL,
        number=129704914,
        optional=True,
    )


class InterconnectGroup(proto.Message):
    r"""An interconnect group resource allows customers to create,
    analyze, and expand their redundant connections.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        configured (google.cloud.compute_v1beta.types.InterconnectGroupConfigured):

            This field is a member of `oneof`_ ``_configured``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        etag (str):
            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 API 154.

            This field is a member of `oneof`_ ``_etag``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        intent (google.cloud.compute_v1beta.types.InterconnectGroupIntent):

            This field is a member of `oneof`_ ``_intent``.
        interconnects (MutableMapping[str, google.cloud.compute_v1beta.types.InterconnectGroupInterconnect]):
            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.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#InterconnectGroup

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        physical_structure (google.cloud.compute_v1beta.types.InterconnectGroupPhysicalStructure):

            This field is a member of `oneof`_ ``_physical_structure``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    configured: "InterconnectGroupConfigured" = proto.Field(
        proto.MESSAGE,
        number=295631422,
        optional=True,
        message="InterconnectGroupConfigured",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    intent: "InterconnectGroupIntent" = proto.Field(
        proto.MESSAGE,
        number=426849948,
        optional=True,
        message="InterconnectGroupIntent",
    )
    interconnects: MutableMapping[
        str, "InterconnectGroupInterconnect"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=520187301,
        message="InterconnectGroupInterconnect",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    physical_structure: "InterconnectGroupPhysicalStructure" = proto.Field(
        proto.MESSAGE,
        number=195307531,
        optional=True,
        message="InterconnectGroupPhysicalStructure",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class InterconnectGroupConfigured(proto.Message):
    r"""[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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        topology_capability (google.cloud.compute_v1beta.types.InterconnectGroupConfiguredTopologyCapability):

            This field is a member of `oneof`_ ``_topology_capability``.
    """

    topology_capability: "InterconnectGroupConfiguredTopologyCapability" = proto.Field(
        proto.MESSAGE,
        number=144190696,
        optional=True,
        message="InterconnectGroupConfiguredTopologyCapability",
    )


class InterconnectGroupConfiguredTopologyCapability(proto.Message):
    r"""[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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        intended_capability_blockers (MutableSequence[google.cloud.compute_v1beta.types.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers]):

        supported_sla (str):
            Check the SupportedSla enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_supported_sla``.
    """

    class SupportedSla(proto.Enum):
        r"""

        Values:
            UNDEFINED_SUPPORTED_SLA (0):
                A value indicating that the enum field is not
                set.
            NO_SLA (161460618):
                No description available.
            PRODUCTION_CRITICAL (470416485):
                No description available.
            PRODUCTION_NON_CRITICAL (117399223):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_SUPPORTED_SLA = 0
        NO_SLA = 161460618
        PRODUCTION_CRITICAL = 470416485
        PRODUCTION_NON_CRITICAL = 117399223
        UNSPECIFIED = 526786327

    intended_capability_blockers: MutableSequence[
        "InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=531644140,
        message="InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers",
    )
    supported_sla: str = proto.Field(
        proto.STRING,
        number=59292183,
        optional=True,
    )


class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers(
    proto.Message
):
    r"""[Output Only] Reasons why configuration.topologyCapability.sla
    differs from intent.topologyCapability. This list is empty if and
    only if those are the same.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        blocker_type (str):
            Check the BlockerType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_blocker_type``.
        documentation_link (str):
            [Output Only] The url of Google Cloud public documentation
            explaining this requirement. This is set for every type of
            requirement.

            This field is a member of `oneof`_ ``_documentation_link``.
        explanation (str):
            [Output Only] A human-readable explanation of this
            requirement and why it's not met. This is set for every type
            of requirement.

            This field is a member of `oneof`_ ``_explanation``.
        facilities (MutableSequence[str]):
            [Output Only] Facilities used to explain this blocker in
            more detail. Like
            physicalStructure.metros.facilities.facility, this is a
            numeric string like "5467".
        interconnects (MutableSequence[str]):
            [Output Only] Interconnects used to explain this blocker in
            more detail.
        metros (MutableSequence[str]):
            [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.
        zones (MutableSequence[str]):
            [Output Only] Zones used to explain this blocker in more
            detail. Zone names are "zone1" and/or "zone2".
    """

    class BlockerType(proto.Enum):
        r"""

        Values:
            UNDEFINED_BLOCKER_TYPE (0):
                A value indicating that the enum field is not
                set.
            INCOMPATIBLE_METROS (290410432):
                No description available.
            NOT_AVAILABLE (140722205):
                No description available.
            NO_INTERCONNECTS (523549575):
                No description available.
            NO_INTERCONNECTS_IN_METRO_AND_ZONE (440966492):
                No description available.
            OTHER (75532016):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_BLOCKER_TYPE = 0
        INCOMPATIBLE_METROS = 290410432
        NOT_AVAILABLE = 140722205
        NO_INTERCONNECTS = 523549575
        NO_INTERCONNECTS_IN_METRO_AND_ZONE = 440966492
        OTHER = 75532016
        UNSPECIFIED = 526786327

    blocker_type: str = proto.Field(
        proto.STRING,
        number=381194847,
        optional=True,
    )
    documentation_link: str = proto.Field(
        proto.STRING,
        number=93465183,
        optional=True,
    )
    explanation: str = proto.Field(
        proto.STRING,
        number=504745497,
        optional=True,
    )
    facilities: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=536683137,
    )
    interconnects: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=520187301,
    )
    metros: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=533067386,
    )
    zones: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=116085319,
    )


class InterconnectGroupIntent(proto.Message):
    r"""The user's intent for this group. This is the only required
    field besides the name that must be specified on group creation.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        topology_capability (str):
            Check the TopologyCapability enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_topology_capability``.
    """

    class TopologyCapability(proto.Enum):
        r"""

        Values:
            UNDEFINED_TOPOLOGY_CAPABILITY (0):
                A value indicating that the enum field is not
                set.
            NO_SLA (161460618):
                No description available.
            PRODUCTION_CRITICAL (470416485):
                No description available.
            PRODUCTION_NON_CRITICAL (117399223):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_TOPOLOGY_CAPABILITY = 0
        NO_SLA = 161460618
        PRODUCTION_CRITICAL = 470416485
        PRODUCTION_NON_CRITICAL = 117399223
        UNSPECIFIED = 526786327

    topology_capability: str = proto.Field(
        proto.STRING,
        number=144190696,
        optional=True,
    )


class InterconnectGroupInterconnect(proto.Message):
    r"""An Interconnect in this InterconnectGroup.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect (str):
            The URL of an Interconnect in this group. All
            Interconnects in the group are unique.

            This field is a member of `oneof`_ ``_interconnect``.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
        optional=True,
    )


class InterconnectGroupPhysicalStructure(proto.Message):
    r"""[Output Only] An analysis of the physical layout of Interconnects in
    this group. Every Interconnect in the group is shown once in this
    structure.

    Attributes:
        metros (MutableSequence[google.cloud.compute_v1beta.types.InterconnectGroupPhysicalStructureMetros]):

    """

    metros: MutableSequence[
        "InterconnectGroupPhysicalStructureMetros"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=533067386,
        message="InterconnectGroupPhysicalStructureMetros",
    )


class InterconnectGroupPhysicalStructureMetros(proto.Message):
    r"""[Output Only] The metros Interconnects in this group are in.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        facilities (MutableSequence[google.cloud.compute_v1beta.types.InterconnectGroupPhysicalStructureMetrosFacilities]):

        metro (str):
            [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.

            This field is a member of `oneof`_ ``_metro``.
    """

    facilities: MutableSequence[
        "InterconnectGroupPhysicalStructureMetrosFacilities"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=536683137,
        message="InterconnectGroupPhysicalStructureMetrosFacilities",
    )
    metro: str = proto.Field(
        proto.STRING,
        number=103787801,
        optional=True,
    )


class InterconnectGroupPhysicalStructureMetrosFacilities(proto.Message):
    r"""[Output Only] The facilities Interconnects in this metro are present
    in.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        facility (str):
            [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.

            This field is a member of `oneof`_ ``_facility``.
        zones (MutableSequence[google.cloud.compute_v1beta.types.InterconnectGroupPhysicalStructureMetrosFacilitiesZones]):

    """

    facility: str = proto.Field(
        proto.STRING,
        number=501116579,
        optional=True,
    )
    zones: MutableSequence[
        "InterconnectGroupPhysicalStructureMetrosFacilitiesZones"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=116085319,
        message="InterconnectGroupPhysicalStructureMetrosFacilitiesZones",
    )


class InterconnectGroupPhysicalStructureMetrosFacilitiesZones(proto.Message):
    r"""[Output Only] The zones that Interconnects in this facility are
    present in.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnects (MutableSequence[str]):
            [Output Only] URLs of Interconnects in this redundancy group
            in the given metro, facility, and zone.
        zone (str):
            [Output Only] The name of the zone, either "zone1" or
            "zone2". This is the second component of the location of
            Interconnects in this facility.

            This field is a member of `oneof`_ ``_zone``.
    """

    interconnects: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=520187301,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class InterconnectGroupsCreateMembers(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        intent_mismatch_behavior (str):
            How to behave when
            configured.topologyCapability.supportedSLA would
            not equal intent.topologyCapability after this
            call. Check the IntentMismatchBehavior enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_intent_mismatch_behavior``.
        interconnects (MutableSequence[google.cloud.compute_v1beta.types.InterconnectGroupsCreateMembersInterconnectInput]):

        template_interconnect (google.cloud.compute_v1beta.types.InterconnectGroupsCreateMembersInterconnectInput):
            Parameters for the Interconnects to create.

            This field is a member of `oneof`_ ``_template_interconnect``.
    """

    class IntentMismatchBehavior(proto.Enum):
        r"""How to behave when configured.topologyCapability.supportedSLA
        would not equal intent.topologyCapability after this call.

        Values:
            UNDEFINED_INTENT_MISMATCH_BEHAVIOR (0):
                A value indicating that the enum field is not
                set.
            CREATE (385389820):
                No description available.
            REJECT (266102687):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_INTENT_MISMATCH_BEHAVIOR = 0
        CREATE = 385389820
        REJECT = 266102687
        UNSPECIFIED = 526786327

    intent_mismatch_behavior: str = proto.Field(
        proto.STRING,
        number=164408000,
        optional=True,
    )
    interconnects: MutableSequence[
        "InterconnectGroupsCreateMembersInterconnectInput"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=520187301,
        message="InterconnectGroupsCreateMembersInterconnectInput",
    )
    template_interconnect: "InterconnectGroupsCreateMembersInterconnectInput" = (
        proto.Field(
            proto.MESSAGE,
            number=224745523,
            optional=True,
            message="InterconnectGroupsCreateMembersInterconnectInput",
        )
    )


class InterconnectGroupsCreateMembersInterconnectInput(proto.Message):
    r"""LINT.IfChange

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        admin_enabled (bool):
            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.

            This field is a member of `oneof`_ ``_admin_enabled``.
        customer_name (str):
            Customer name, to put in the Letter of
            Authorization as the party authorized to request
            a crossconnect.

            This field is a member of `oneof`_ ``_customer_name``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        facility (str):
            A zone-free location to use for all
            Interconnects created in this call, like
            "iad-1234".

            This field is a member of `oneof`_ ``_facility``.
        interconnect_type (str):
            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.
            Check the InterconnectType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_interconnect_type``.
        link_type (str):
            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. Check the LinkType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_link_type``.
        name (str):
            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.

            This field is a member of `oneof`_ ``_name``.
        noc_contact_email (str):
            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.

            This field is a member of `oneof`_ ``_noc_contact_email``.
        remote_location (str):
            Indicates that this is a Cross-Cloud
            Interconnect. This field specifies the location
            outside of Google's network that the
            interconnect is connected to.

            This field is a member of `oneof`_ ``_remote_location``.
        requested_features (MutableSequence[str]):
            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, the default
            value is false, which allocates non-MACsec capable ports
            first if available. This parameter can be provided only with
            Interconnect INSERT. It isn't valid for Interconnect PATCH.
            Check the RequestedFeatures enum for the list of possible
            values.
        requested_link_count (int):
            Target number of physical links in the link
            bundle, as requested by the customer.

            This field is a member of `oneof`_ ``_requested_link_count``.
    """

    class InterconnectType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_INTERCONNECT_TYPE (0):
                A value indicating that the enum field is not
                set.
            DEDICATED (258411983):
                A dedicated physical interconnection with the
                customer.
            IT_PRIVATE (335677007):
                [Deprecated] A private, physical interconnection with the
                customer.
            PARTNER (461924520):
                A partner-managed interconnection shared
                between customers via partner.
        """
        UNDEFINED_INTERCONNECT_TYPE = 0
        DEDICATED = 258411983
        IT_PRIVATE = 335677007
        PARTNER = 461924520

    class LinkType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_LINK_TYPE (0):
                A value indicating that the enum field is not
                set.
            LINK_TYPE_ETHERNET_100G_LR (337672551):
                100G Ethernet, LR Optics.
            LINK_TYPE_ETHERNET_10G_LR (236739749):
                10G Ethernet, LR Optics. [(rate_bps) = 10000000000];
            LINK_TYPE_ETHERNET_400G_LR4 (127023690):
                400G Ethernet, LR4 Optics.
        """
        UNDEFINED_LINK_TYPE = 0
        LINK_TYPE_ETHERNET_100G_LR = 337672551
        LINK_TYPE_ETHERNET_10G_LR = 236739749
        LINK_TYPE_ETHERNET_400G_LR4 = 127023690

    class RequestedFeatures(proto.Enum):
        r"""

        Values:
            UNDEFINED_REQUESTED_FEATURES (0):
                A value indicating that the enum field is not
                set.
            IF_CROSS_SITE_NETWORK (469111095):
                Cross-Site Networking
            IF_MACSEC (396279300):
                Media Access Control security (MACsec)
        """
        UNDEFINED_REQUESTED_FEATURES = 0
        IF_CROSS_SITE_NETWORK = 469111095
        IF_MACSEC = 396279300

    admin_enabled: bool = proto.Field(
        proto.BOOL,
        number=445675089,
        optional=True,
    )
    customer_name: str = proto.Field(
        proto.STRING,
        number=3665484,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    facility: str = proto.Field(
        proto.STRING,
        number=501116579,
        optional=True,
    )
    interconnect_type: str = proto.Field(
        proto.STRING,
        number=515165259,
        optional=True,
    )
    link_type: str = proto.Field(
        proto.STRING,
        number=523207775,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    noc_contact_email: str = proto.Field(
        proto.STRING,
        number=14072832,
        optional=True,
    )
    remote_location: str = proto.Field(
        proto.STRING,
        number=324388750,
        optional=True,
    )
    requested_features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=461240814,
    )
    requested_link_count: int = proto.Field(
        proto.INT32,
        number=45051387,
        optional=True,
    )


class InterconnectGroupsCreateMembersRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        request (google.cloud.compute_v1beta.types.InterconnectGroupsCreateMembers):

            This field is a member of `oneof`_ ``_request``.
    """

    request: "InterconnectGroupsCreateMembers" = proto.Field(
        proto.MESSAGE,
        number=21951119,
        optional=True,
        message="InterconnectGroupsCreateMembers",
    )


class InterconnectGroupsGetOperationalStatusResponse(proto.Message):
    r"""Response for the
    InterconnectGroupsGetOperationalStatusResponse.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        result (google.cloud.compute_v1beta.types.InterconnectGroupsOperationalStatus):

            This field is a member of `oneof`_ ``_result``.
    """

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    result: "InterconnectGroupsOperationalStatus" = proto.Field(
        proto.MESSAGE,
        number=139315229,
        optional=True,
        message="InterconnectGroupsOperationalStatus",
    )


class InterconnectGroupsListResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InterconnectGroup]):
            A list of InterconnectGroup resources.
        kind (str):

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InterconnectGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InterconnectGroup",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectGroupsOperationalStatus(proto.Message):
    r"""Request to get the status of the interconnect group with
    extra detail.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        configured (google.cloud.compute_v1beta.types.InterconnectGroupConfigured):
            The configuration analysis, as returned by
            Get.

            This field is a member of `oneof`_ ``_configured``.
        group_status (str):
            Summarizes the status of the group.
            Check the GroupStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_group_status``.
        intent (google.cloud.compute_v1beta.types.InterconnectGroupIntent):
            The intent of the resource, as returned by
            Get.

            This field is a member of `oneof`_ ``_intent``.
        interconnect_statuses (MutableSequence[google.cloud.compute_v1beta.types.InterconnectGroupsOperationalStatusInterconnectStatus]):

        operational (google.cloud.compute_v1beta.types.InterconnectGroupConfigured):
            The operational state of the group, including
            only active Interconnects.

            This field is a member of `oneof`_ ``_operational``.
    """

    class GroupStatus(proto.Enum):
        r"""Summarizes the status of the group.

        Values:
            UNDEFINED_GROUP_STATUS (0):
                A value indicating that the enum field is not
                set.
            DEGRADED (396890926):
                No description available.
            FULLY_DOWN (255514647):
                No description available.
            FULLY_UP (504176464):
                No description available.
            GROUPS_STATUS_UNSPECIFIED (261932693):
                No description available.
        """
        UNDEFINED_GROUP_STATUS = 0
        DEGRADED = 396890926
        FULLY_DOWN = 255514647
        FULLY_UP = 504176464
        GROUPS_STATUS_UNSPECIFIED = 261932693

    configured: "InterconnectGroupConfigured" = proto.Field(
        proto.MESSAGE,
        number=295631422,
        optional=True,
        message="InterconnectGroupConfigured",
    )
    group_status: str = proto.Field(
        proto.STRING,
        number=338778546,
        optional=True,
    )
    intent: "InterconnectGroupIntent" = proto.Field(
        proto.MESSAGE,
        number=426849948,
        optional=True,
        message="InterconnectGroupIntent",
    )
    interconnect_statuses: MutableSequence[
        "InterconnectGroupsOperationalStatusInterconnectStatus"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=446756017,
        message="InterconnectGroupsOperationalStatusInterconnectStatus",
    )
    operational: "InterconnectGroupConfigured" = proto.Field(
        proto.MESSAGE,
        number=129704914,
        optional=True,
        message="InterconnectGroupConfigured",
    )


class InterconnectGroupsOperationalStatusInterconnectStatus(proto.Message):
    r"""The status of one Interconnect in the group. The order is
    arbitrary.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        admin_enabled (bool):
            Whether the Interconnect is enabled.

            This field is a member of `oneof`_ ``_admin_enabled``.
        diagnostics (google.cloud.compute_v1beta.types.InterconnectDiagnostics):
            The diagnostics of the Interconnect, as
            returned by the existing get-diagnostics method.

            This field is a member of `oneof`_ ``_diagnostics``.
        interconnect (str):
            The URL of the Interconnect being described.

            This field is a member of `oneof`_ ``_interconnect``.
        is_active (str):
            Whether this interconnect is participating in
            the redundant configuration. Check the IsActive
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_is_active``.
    """

    class IsActive(proto.Enum):
        r"""Whether this interconnect is participating in the redundant
        configuration.

        Values:
            UNDEFINED_IS_ACTIVE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                No description available.
            INACTIVE (270421099):
                No description available.
            IS_ACTIVE_UNSPECIFIED (274948243):
                No description available.
        """
        UNDEFINED_IS_ACTIVE = 0
        ACTIVE = 314733318
        INACTIVE = 270421099
        IS_ACTIVE_UNSPECIFIED = 274948243

    admin_enabled: bool = proto.Field(
        proto.BOOL,
        number=445675089,
        optional=True,
    )
    diagnostics: "InterconnectDiagnostics" = proto.Field(
        proto.MESSAGE,
        number=333355436,
        optional=True,
        message="InterconnectDiagnostics",
    )
    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
        optional=True,
    )
    is_active: str = proto.Field(
        proto.STRING,
        number=114830267,
        optional=True,
    )


class InterconnectList(proto.Message):
    r"""Response to the list request, and contains a list of
    interconnects.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Interconnect]):
            A list of Interconnect resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#interconnectList for lists of interconnects.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Interconnect"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Interconnect",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectLocation(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            [Output Only] The postal address of the Point of Presence,
            each line in the address is separated by a newline
            character.

            This field is a member of `oneof`_ ``_address``.
        availability_zone (str):
            [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".

            This field is a member of `oneof`_ ``_availability_zone``.
        available_features (MutableSequence[str]):
            [Output only] List of features available at this
            InterconnectLocation, which can take one of the following
            values: - IF_MACSEC Check the AvailableFeatures enum for the
            list of possible values.
        available_link_types (MutableSequence[str]):
            [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
            Check the AvailableLinkTypes enum for the list of possible
            values.
        city (str):
            [Output Only] Metropolitan area designator that indicates
            which city an interconnect is located. For example:
            "Chicago, IL", "Amsterdam, Netherlands".

            This field is a member of `oneof`_ ``_city``.
        continent (str):
            [Output Only] Continent for this location, which can take
            one of the following values: - AFRICA - ASIA_PAC - EUROPE -
            NORTH_AMERICA - SOUTH_AMERICA Check the Continent enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_continent``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        cross_site_interconnect_infos (MutableSequence[google.cloud.compute_v1beta.types.InterconnectLocationCrossSiteInterconnectInfo]):
            [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.
        description (str):
            [Output Only] An optional description of the resource.

            This field is a member of `oneof`_ ``_description``.
        facility_provider (str):
            [Output Only] The name of the provider for this facility
            (e.g., EQUINIX).

            This field is a member of `oneof`_ ``_facility_provider``.
        facility_provider_facility_id (str):
            [Output Only] A provider-assigned Identifier for this
            facility (e.g., Ashburn-DC1).

            This field is a member of `oneof`_ ``_facility_provider_facility_id``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#interconnectLocation for interconnect locations.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        peeringdb_facility_id (str):
            [Output Only] The peeringdb identifier for this facility
            (corresponding with a netfac type in peeringdb).

            This field is a member of `oneof`_ ``_peeringdb_facility_id``.
        region_infos (MutableSequence[google.cloud.compute_v1beta.types.InterconnectLocationRegionInfo]):
            [Output Only] A list of InterconnectLocation.RegionInfo
            objects, that describe parameters pertaining to the relation
            between this InterconnectLocation and various Google Cloud
            regions.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [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. Check the Status enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_status``.
        supports_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_supports_pzs``.
    """

    class AvailableFeatures(proto.Enum):
        r"""

        Values:
            UNDEFINED_AVAILABLE_FEATURES (0):
                A value indicating that the enum field is not
                set.
            IF_CROSS_SITE_NETWORK (469111095):
                Cross-Site Networking
            IF_MACSEC (396279300):
                Media Access Control security (MACsec)
        """
        UNDEFINED_AVAILABLE_FEATURES = 0
        IF_CROSS_SITE_NETWORK = 469111095
        IF_MACSEC = 396279300

    class AvailableLinkTypes(proto.Enum):
        r"""

        Values:
            UNDEFINED_AVAILABLE_LINK_TYPES (0):
                A value indicating that the enum field is not
                set.
            LINK_TYPE_ETHERNET_100G_LR (337672551):
                100G Ethernet, LR Optics.
            LINK_TYPE_ETHERNET_10G_LR (236739749):
                10G Ethernet, LR Optics. [(rate_bps) = 10000000000];
            LINK_TYPE_ETHERNET_400G_LR4 (127023690):
                400G Ethernet, LR4 Optics.
        """
        UNDEFINED_AVAILABLE_LINK_TYPES = 0
        LINK_TYPE_ETHERNET_100G_LR = 337672551
        LINK_TYPE_ETHERNET_10G_LR = 236739749
        LINK_TYPE_ETHERNET_400G_LR4 = 127023690

    class Continent(proto.Enum):
        r"""[Output Only] Continent for this location, which can take one of the
        following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA -
        SOUTH_AMERICA

        Values:
            UNDEFINED_CONTINENT (0):
                A value indicating that the enum field is not
                set.
            AFRICA (317443706):
                No description available.
            ASIA_PAC (119782269):
                No description available.
            C_AFRICA (71993846):
                No description available.
            C_ASIA_PAC (465668089):
                No description available.
            C_EUROPE (200369438):
                No description available.
            C_NORTH_AMERICA (275697048):
                No description available.
            C_SOUTH_AMERICA (397149792):
                No description available.
            EUROPE (445819298):
                No description available.
            NORTH_AMERICA (448015508):
                No description available.
            SOUTH_AMERICA (32597340):
                No description available.
        """
        UNDEFINED_CONTINENT = 0
        AFRICA = 317443706
        ASIA_PAC = 119782269
        C_AFRICA = 71993846
        C_ASIA_PAC = 465668089
        C_EUROPE = 200369438
        C_NORTH_AMERICA = 275697048
        C_SOUTH_AMERICA = 397149792
        EUROPE = 445819298
        NORTH_AMERICA = 448015508
        SOUTH_AMERICA = 32597340

    class Status(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            AVAILABLE (442079913):
                The InterconnectLocation is available for
                provisioning new Interconnects.
            CLOSED (380163436):
                The InterconnectLocation is closed for
                provisioning new Interconnects.
        """
        UNDEFINED_STATUS = 0
        AVAILABLE = 442079913
        CLOSED = 380163436

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
        optional=True,
    )
    availability_zone: str = proto.Field(
        proto.STRING,
        number=158459920,
        optional=True,
    )
    available_features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=496344307,
    )
    available_link_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=509504298,
    )
    city: str = proto.Field(
        proto.STRING,
        number=3053931,
        optional=True,
    )
    continent: str = proto.Field(
        proto.STRING,
        number=133442996,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    cross_site_interconnect_infos: MutableSequence[
        "InterconnectLocationCrossSiteInterconnectInfo"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=248573837,
        message="InterconnectLocationCrossSiteInterconnectInfo",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    facility_provider: str = proto.Field(
        proto.STRING,
        number=533303309,
        optional=True,
    )
    facility_provider_facility_id: str = proto.Field(
        proto.STRING,
        number=87269125,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    peeringdb_facility_id: str = proto.Field(
        proto.STRING,
        number=536567094,
        optional=True,
    )
    region_infos: MutableSequence[
        "InterconnectLocationRegionInfo"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=312194170,
        message="InterconnectLocationRegionInfo",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    supports_pzs: bool = proto.Field(
        proto.BOOL,
        number=83983214,
        optional=True,
    )


class InterconnectLocationCrossSiteInterconnectInfo(proto.Message):
    r"""Information about Cross-Site Interconnect wires which may be
    created between the containing location and another remote
    location.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        city (str):
            The remote location for Cross-Site
            Interconnect wires. This specifies an
            InterconnectLocation city (metropolitan area
            designator), which itself may match multiple
            InterconnectLocations.

            This field is a member of `oneof`_ ``_city``.
    """

    city: str = proto.Field(
        proto.STRING,
        number=3053931,
        optional=True,
    )


class InterconnectLocationList(proto.Message):
    r"""Response to the list request, and contains a list of
    interconnect locations.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InterconnectLocation]):
            A list of InterconnectLocation resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#interconnectLocationList for lists of interconnect
            locations.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InterconnectLocation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InterconnectLocation",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectLocationRegionInfo(proto.Message):
    r"""Information about any potential InterconnectAttachments
    between an Interconnect at a specific InterconnectLocation, and
    a specific Cloud Region.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        expected_rtt_ms (int):
            Expected round-trip time in milliseconds,
            from this InterconnectLocation to a VM in this
            region.

            This field is a member of `oneof`_ ``_expected_rtt_ms``.
        location_presence (str):
            Identifies the network presence of this
            location. Check the LocationPresence enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_location_presence``.
        region (str):
            URL for the region of this location.

            This field is a member of `oneof`_ ``_region``.
    """

    class LocationPresence(proto.Enum):
        r"""Identifies the network presence of this location.

        Values:
            UNDEFINED_LOCATION_PRESENCE (0):
                A value indicating that the enum field is not
                set.
            GLOBAL (494663587):
                This region is not in any common network
                presence with this InterconnectLocation.
            LOCAL_REGION (403535464):
                This region shares the same regional network
                presence as this InterconnectLocation.
            LP_GLOBAL (429584062):
                [Deprecated] This region is not in any common network
                presence with this InterconnectLocation.
            LP_LOCAL_REGION (488598851):
                [Deprecated] This region shares the same regional network
                presence as this InterconnectLocation.
        """
        UNDEFINED_LOCATION_PRESENCE = 0
        GLOBAL = 494663587
        LOCAL_REGION = 403535464
        LP_GLOBAL = 429584062
        LP_LOCAL_REGION = 488598851

    expected_rtt_ms: int = proto.Field(
        proto.INT64,
        number=422543866,
        optional=True,
    )
    location_presence: str = proto.Field(
        proto.STRING,
        number=101517893,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )


class InterconnectMacsec(proto.Message):
    r"""Configuration information for enabling Media Access Control
    security (MACsec) on this Cloud Interconnect connection between
    Google and your on-premises router.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fail_open (bool):
            If set to true, the Interconnect connection
            is configured with a should-secure MACsec
            security policy, that allows the Google router
            to fallback to cleartext traffic if the MKA
            session cannot be established. By default, the
            Interconnect connection is configured with a
            must-secure security policy that drops all
            traffic if the MKA session cannot be established
            with your router.

            This field is a member of `oneof`_ ``_fail_open``.
        pre_shared_keys (MutableSequence[google.cloud.compute_v1beta.types.InterconnectMacsecPreSharedKey]):
            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.
    """

    fail_open: bool = proto.Field(
        proto.BOOL,
        number=532597451,
        optional=True,
    )
    pre_shared_keys: MutableSequence[
        "InterconnectMacsecPreSharedKey"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=420308466,
        message="InterconnectMacsecPreSharedKey",
    )


class InterconnectMacsecConfig(proto.Message):
    r"""MACsec configuration information for the Interconnect
    connection. Contains the generated Connectivity Association Key
    Name (CKN) and the key (CAK) for this Interconnect connection.

    Attributes:
        pre_shared_keys (MutableSequence[google.cloud.compute_v1beta.types.InterconnectMacsecConfigPreSharedKey]):
            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.
    """

    pre_shared_keys: MutableSequence[
        "InterconnectMacsecConfigPreSharedKey"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=420308466,
        message="InterconnectMacsecConfigPreSharedKey",
    )


class InterconnectMacsecConfigPreSharedKey(proto.Message):
    r"""Describes a pre-shared key used to setup MACsec in static
    connectivity association key (CAK) mode.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cak (str):
            An auto-generated Connectivity Association
            Key (CAK) for this key.

            This field is a member of `oneof`_ ``_cak``.
        ckn (str):
            An auto-generated Connectivity Association
            Key Name (CKN) for this key.

            This field is a member of `oneof`_ ``_ckn``.
        name (str):
            User provided name for this pre-shared key.

            This field is a member of `oneof`_ ``_name``.
        start_time (str):
            User provided timestamp on or after which
            this key is valid.

            This field is a member of `oneof`_ ``_start_time``.
    """

    cak: str = proto.Field(
        proto.STRING,
        number=98253,
        optional=True,
    )
    ckn: str = proto.Field(
        proto.STRING,
        number=98566,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class InterconnectMacsecPreSharedKey(proto.Message):
    r"""Describes a pre-shared key used to setup MACsec in static
    connectivity association key (CAK) mode.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Required. A name for this pre-shared key. The name must be
            1-63 characters long, and comply with RFC1035. Specifically,
            the name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        start_time (str):
            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.

            This field is a member of `oneof`_ ``_start_time``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class InterconnectOutageNotification(proto.Message):
    r"""Description of a planned outage on this Interconnect.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        affected_circuits (MutableSequence[str]):
            If issue_type is IT_PARTIAL_OUTAGE, a list of the
            Google-side circuit IDs that will be affected.
        description (str):
            A description about the purpose of the
            outage.

            This field is a member of `oneof`_ ``_description``.
        end_time (int):
            Scheduled end time for the outage
            (milliseconds since Unix epoch).

            This field is a member of `oneof`_ ``_end_time``.
        issue_type (str):
            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. Check the IssueType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_issue_type``.
        name (str):
            Unique identifier for this outage
            notification.

            This field is a member of `oneof`_ ``_name``.
        source (str):
            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. Check the Source enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_source``.
        start_time (int):
            Scheduled start time for the outage
            (milliseconds since Unix epoch).

            This field is a member of `oneof`_ ``_start_time``.
        state (str):
            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. Check the
            State enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
    """

    class IssueType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_ISSUE_TYPE (0):
                A value indicating that the enum field is not
                set.
            IT_OUTAGE (175779973):
                [Deprecated] The Interconnect may be completely out of
                service for some or all of the specified window.
            IT_PARTIAL_OUTAGE (92103971):
                [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 (195285745):
                The Interconnect may be completely out of
                service for some or all of the specified window.
            PARTIAL_OUTAGE (147053455):
                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.
        """
        UNDEFINED_ISSUE_TYPE = 0
        IT_OUTAGE = 175779973
        IT_PARTIAL_OUTAGE = 92103971
        OUTAGE = 195285745
        PARTIAL_OUTAGE = 147053455

    class Source(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SOURCE (0):
                A value indicating that the enum field is not
                set.
            GOOGLE (497439289):
                This notification was generated by Google.
            NSRC_GOOGLE (510574562):
                [Deprecated] This notification was generated by Google.
        """
        UNDEFINED_SOURCE = 0
        GOOGLE = 497439289
        NSRC_GOOGLE = 510574562

    class State(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                This outage notification is active. The event could be in
                the future, present, or past. See start_time and end_time
                for scheduling.
            CANCELLED (41957681):
                The outage associated with this notification
                was cancelled before the outage was due to
                start.
            COMPLETED (309921323):
                The outage associated with this notification
                is complete.
            NS_ACTIVE (252563136):
                [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 (506579411):
                [Deprecated] The outage associated with this notification
                was canceled before the outage was due to start.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        CANCELLED = 41957681
        COMPLETED = 309921323
        NS_ACTIVE = 252563136
        NS_CANCELED = 506579411

    affected_circuits: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=177717013,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    end_time: int = proto.Field(
        proto.INT64,
        number=114938801,
        optional=True,
    )
    issue_type: str = proto.Field(
        proto.STRING,
        number=369639136,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    source: str = proto.Field(
        proto.STRING,
        number=177235995,
        optional=True,
    )
    start_time: int = proto.Field(
        proto.INT64,
        number=37467274,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )


class InterconnectRemoteLocation(proto.Message):
    r"""Represents a Cross-Cloud Interconnect Remote Location
    resource. You can use this resource to find remote location
    details about an Interconnect attachment (VLAN).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            [Output Only] The postal address of the Point of Presence,
            each line in the address is separated by a newline
            character.

            This field is a member of `oneof`_ ``_address``.
        attachment_configuration_constraints (google.cloud.compute_v1beta.types.InterconnectAttachmentConfigurationConstraints):
            [Output Only] Subset of fields from InterconnectAttachment's
            \|configurationConstraints\| field that apply to all
            attachments for this remote location.

            This field is a member of `oneof`_ ``_attachment_configuration_constraints``.
        city (str):
            [Output Only] Metropolitan area designator that indicates
            which city an interconnect is located. For example:
            "Chicago, IL", "Amsterdam, Netherlands".

            This field is a member of `oneof`_ ``_city``.
        constraints (google.cloud.compute_v1beta.types.InterconnectRemoteLocationConstraints):
            [Output Only] Constraints on the parameters for creating
            Cross-Cloud Interconnect and associated
            InterconnectAttachments.

            This field is a member of `oneof`_ ``_constraints``.
        continent (str):
            [Output Only] Continent for this location, which can take
            one of the following values: - AFRICA - ASIA_PAC - EUROPE -
            NORTH_AMERICA - SOUTH_AMERICA Check the Continent enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_continent``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            [Output Only] An optional description of the resource.

            This field is a member of `oneof`_ ``_description``.
        facility_provider (str):
            [Output Only] The name of the provider for this facility
            (e.g., EQUINIX).

            This field is a member of `oneof`_ ``_facility_provider``.
        facility_provider_facility_id (str):
            [Output Only] A provider-assigned Identifier for this
            facility (e.g., Ashburn-DC1).

            This field is a member of `oneof`_ ``_facility_provider_facility_id``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#interconnectRemoteLocation for interconnect remote
            locations.

            This field is a member of `oneof`_ ``_kind``.
        lacp (str):
            [Output Only] Link Aggregation Control Protocol (LACP)
            constraints, which can take one of the following values:
            LACP_SUPPORTED, LACP_UNSUPPORTED Check the Lacp enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_lacp``.
        max_lag_size100_gbps (int):
            [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.

            This field is a member of `oneof`_ ``_max_lag_size100_gbps``.
        max_lag_size10_gbps (int):
            [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.

            This field is a member of `oneof`_ ``_max_lag_size10_gbps``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        peeringdb_facility_id (str):
            [Output Only] The peeringdb identifier for this facility
            (corresponding with a netfac type in peeringdb).

            This field is a member of `oneof`_ ``_peeringdb_facility_id``.
        permitted_connections (MutableSequence[google.cloud.compute_v1beta.types.InterconnectRemoteLocationPermittedConnections]):
            [Output Only] Permitted connections.
        remote_service (str):
            [Output Only] Indicates the service provider present at the
            remote location. Example values: "Amazon Web Services",
            "Microsoft Azure".

            This field is a member of `oneof`_ ``_remote_service``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [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. Check the Status enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class Continent(proto.Enum):
        r"""[Output Only] Continent for this location, which can take one of the
        following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA -
        SOUTH_AMERICA

        Values:
            UNDEFINED_CONTINENT (0):
                A value indicating that the enum field is not
                set.
            AFRICA (317443706):
                No description available.
            ASIA_PAC (119782269):
                No description available.
            EUROPE (445819298):
                No description available.
            NORTH_AMERICA (448015508):
                No description available.
            SOUTH_AMERICA (32597340):
                No description available.
        """
        UNDEFINED_CONTINENT = 0
        AFRICA = 317443706
        ASIA_PAC = 119782269
        EUROPE = 445819298
        NORTH_AMERICA = 448015508
        SOUTH_AMERICA = 32597340

    class Lacp(proto.Enum):
        r"""[Output Only] Link Aggregation Control Protocol (LACP) constraints,
        which can take one of the following values: LACP_SUPPORTED,
        LACP_UNSUPPORTED

        Values:
            UNDEFINED_LACP (0):
                A value indicating that the enum field is not
                set.
            LACP_SUPPORTED (339576113):
                LACP_SUPPORTED: LACP is supported, and enabled by default on
                the Cross-Cloud Interconnect.
            LACP_UNSUPPORTED (203930104):
                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.
        """
        UNDEFINED_LACP = 0
        LACP_SUPPORTED = 339576113
        LACP_UNSUPPORTED = 203930104

    class Status(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            AVAILABLE (442079913):
                The InterconnectRemoteLocation is available
                for provisioning new Cross-Cloud Interconnects.
            CLOSED (380163436):
                The InterconnectRemoteLocation is closed for
                provisioning new Cross-Cloud Interconnects.
        """
        UNDEFINED_STATUS = 0
        AVAILABLE = 442079913
        CLOSED = 380163436

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
        optional=True,
    )
    attachment_configuration_constraints: "InterconnectAttachmentConfigurationConstraints" = proto.Field(
        proto.MESSAGE,
        number=326825041,
        optional=True,
        message="InterconnectAttachmentConfigurationConstraints",
    )
    city: str = proto.Field(
        proto.STRING,
        number=3053931,
        optional=True,
    )
    constraints: "InterconnectRemoteLocationConstraints" = proto.Field(
        proto.MESSAGE,
        number=3909174,
        optional=True,
        message="InterconnectRemoteLocationConstraints",
    )
    continent: str = proto.Field(
        proto.STRING,
        number=133442996,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    facility_provider: str = proto.Field(
        proto.STRING,
        number=533303309,
        optional=True,
    )
    facility_provider_facility_id: str = proto.Field(
        proto.STRING,
        number=87269125,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    lacp: str = proto.Field(
        proto.STRING,
        number=3313826,
        optional=True,
    )
    max_lag_size100_gbps: int = proto.Field(
        proto.INT32,
        number=245219253,
        optional=True,
    )
    max_lag_size10_gbps: int = proto.Field(
        proto.INT32,
        number=294007573,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    peeringdb_facility_id: str = proto.Field(
        proto.STRING,
        number=536567094,
        optional=True,
    )
    permitted_connections: MutableSequence[
        "InterconnectRemoteLocationPermittedConnections"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=442063278,
        message="InterconnectRemoteLocationPermittedConnections",
    )
    remote_service: str = proto.Field(
        proto.STRING,
        number=391954364,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class InterconnectRemoteLocationConstraints(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        port_pair_remote_location (str):
            [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. Check the PortPairRemoteLocation enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_port_pair_remote_location``.
        port_pair_vlan (str):
            [Output Only] Port pair VLAN constraints, which can take one
            of the following values: PORT_PAIR_UNCONSTRAINED_VLAN,
            PORT_PAIR_MATCHING_VLAN Check the PortPairVlan enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_port_pair_vlan``.
        subnet_length_range (google.cloud.compute_v1beta.types.InterconnectRemoteLocationConstraintsSubnetLengthRange):
            [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}.

            This field is a member of `oneof`_ ``_subnet_length_range``.
    """

    class PortPairRemoteLocation(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_PORT_PAIR_REMOTE_LOCATION (0):
                A value indicating that the enum field is not
                set.
            PORT_PAIR_MATCHING_REMOTE_LOCATION (207291859):
                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 (60609829):
                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.
        """
        UNDEFINED_PORT_PAIR_REMOTE_LOCATION = 0
        PORT_PAIR_MATCHING_REMOTE_LOCATION = 207291859
        PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION = 60609829

    class PortPairVlan(proto.Enum):
        r"""[Output Only] Port pair VLAN constraints, which can take one of the
        following values: PORT_PAIR_UNCONSTRAINED_VLAN,
        PORT_PAIR_MATCHING_VLAN

        Values:
            UNDEFINED_PORT_PAIR_VLAN (0):
                A value indicating that the enum field is not
                set.
            PORT_PAIR_MATCHING_VLAN (250295358):
                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 (175227948):
                PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint.
        """
        UNDEFINED_PORT_PAIR_VLAN = 0
        PORT_PAIR_MATCHING_VLAN = 250295358
        PORT_PAIR_UNCONSTRAINED_VLAN = 175227948

    port_pair_remote_location: str = proto.Field(
        proto.STRING,
        number=495917351,
        optional=True,
    )
    port_pair_vlan: str = proto.Field(
        proto.STRING,
        number=478214506,
        optional=True,
    )
    subnet_length_range: "InterconnectRemoteLocationConstraintsSubnetLengthRange" = (
        proto.Field(
            proto.MESSAGE,
            number=184473670,
            optional=True,
            message="InterconnectRemoteLocationConstraintsSubnetLengthRange",
        )
    )


class InterconnectRemoteLocationConstraintsSubnetLengthRange(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_ (int):

            This field is a member of `oneof`_ ``_max``.
        min_ (int):

            This field is a member of `oneof`_ ``_min``.
    """

    max_: int = proto.Field(
        proto.INT32,
        number=107876,
        optional=True,
    )
    min_: int = proto.Field(
        proto.INT32,
        number=108114,
        optional=True,
    )


class InterconnectRemoteLocationList(proto.Message):
    r"""Response to the list request, and contains a list of
    interconnect remote locations.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InterconnectRemoteLocation]):
            A list of InterconnectRemoteLocation
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#interconnectRemoteLocationList for lists of
            interconnect remote locations.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [Output Only] This token lets you get the next page of
            results for list requests. If the number of results is
            larger than maxResults, use the nextPageToken as a value for
            the query parameter pageToken in the next list request.
            Subsequent list requests will have their own nextPageToken
            to continue paging through the results.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InterconnectRemoteLocation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InterconnectRemoteLocation",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class InterconnectRemoteLocationPermittedConnections(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_location (str):
            [Output Only] URL of an Interconnect location that is
            permitted to connect to this Interconnect remote location.

            This field is a member of `oneof`_ ``_interconnect_location``.
    """

    interconnect_location: str = proto.Field(
        proto.STRING,
        number=492235846,
        optional=True,
    )


class InterconnectsGetDiagnosticsResponse(proto.Message):
    r"""Response for the InterconnectsGetDiagnosticsRequest.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        result (google.cloud.compute_v1beta.types.InterconnectDiagnostics):

            This field is a member of `oneof`_ ``_result``.
    """

    result: "InterconnectDiagnostics" = proto.Field(
        proto.MESSAGE,
        number=139315229,
        optional=True,
        message="InterconnectDiagnostics",
    )


class InterconnectsGetMacsecConfigResponse(proto.Message):
    r"""Response for the InterconnectsGetMacsecConfigRequest.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):
            end_interface: MixerGetResponseWithEtagBuilder

            This field is a member of `oneof`_ ``_etag``.
        result (google.cloud.compute_v1beta.types.InterconnectMacsecConfig):

            This field is a member of `oneof`_ ``_result``.
    """

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    result: "InterconnectMacsecConfig" = proto.Field(
        proto.MESSAGE,
        number=139315229,
        optional=True,
        message="InterconnectMacsecConfig",
    )


class InvalidateCacheRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.InvalidateCache. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cache_invalidation_rule_resource (google.cloud.compute_v1beta.types.CacheInvalidationRule):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            begin_interface: MixerMutationRequestBuilder Request ID to
            support idempotency.

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap scoping this request.
    """

    cache_invalidation_rule_resource: "CacheInvalidationRule" = proto.Field(
        proto.MESSAGE,
        number=312795565,
        message="CacheInvalidationRule",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )


class InvalidateCacheUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.InvalidateCache. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cache_invalidation_rule_resource (google.cloud.compute_v1beta.types.CacheInvalidationRule):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap scoping this request.
    """

    cache_invalidation_rule_resource: "CacheInvalidationRule" = proto.Field(
        proto.MESSAGE,
        number=312795565,
        message="CacheInvalidationRule",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )


class Items(proto.Message):
    r"""Metadata

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        key (str):
            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.

            This field is a member of `oneof`_ ``_key``.
        value (str):
            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).

            This field is a member of `oneof`_ ``_value``.
    """

    key: str = proto.Field(
        proto.STRING,
        number=106079,
        optional=True,
    )
    value: str = proto.Field(
        proto.STRING,
        number=111972721,
        optional=True,
    )


class License(proto.Message):
    r"""Represents a License resource. A License represents billing and
    aggregate usage data for public and marketplace images. *Caution*
    This resource is intended for use only by third-party partners who
    are creating Cloud Marketplace images.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        allowed_replacement_licenses (MutableSequence[str]):
            Specifies licenseCodes of licenses that can replace this
            license. Note: such replacements are allowed even if
            removable_from_disk is false.
        appendable_to_disk (bool):
            If true, this license can be appended to an
            existing disk's set of licenses.

            This field is a member of `oneof`_ ``_appendable_to_disk``.
        charges_use_fee (bool):
            [Output Only] Deprecated. This field no longer reflects
            whether a license charges a usage fee.

            This field is a member of `oneof`_ ``_charges_use_fee``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional textual description of the
            resource; provided by the client when the
            resource is created.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        incompatible_licenses (MutableSequence[str]):
            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.
        kind (str):
            [Output Only] Type of resource. Always compute#license for
            licenses.

            This field is a member of `oneof`_ ``_kind``.
        license_code (int):
            [Output Only] The unique code used to attach this license to
            images, snapshots, and disks.

            This field is a member of `oneof`_ ``_license_code``.
        minimum_retention (google.cloud.compute_v1beta.types.Duration):
            If set, this license will be unable to be removed or
            replaced once attached to a disk until the minimum_retention
            period has passed.

            This field is a member of `oneof`_ ``_minimum_retention``.
        multi_tenant_only (bool):
            If true, this license can only be used on VMs
            on multi tenant nodes.

            This field is a member of `oneof`_ ``_multi_tenant_only``.
        name (str):
            Name of the resource. The name must be 1-63
            characters long and comply with RFC1035.

            This field is a member of `oneof`_ ``_name``.
        os_license (bool):
            If true, indicates this is an OS license.
            Only one OS license can be attached to a disk or
            image at a time.

            This field is a member of `oneof`_ ``_os_license``.
        removable_from_disk (bool):
            If true, this license can be removed from a
            disk's set of licenses, with no replacement
            license needed.

            This field is a member of `oneof`_ ``_removable_from_disk``.
        required_coattached_licenses (MutableSequence[str]):
            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.
        resource_requirements (google.cloud.compute_v1beta.types.LicenseResourceRequirements):
            [Input Only] Deprecated.

            This field is a member of `oneof`_ ``_resource_requirements``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        sole_tenant_only (bool):
            If true, this license can only be used on VMs
            on sole tenant nodes.

            This field is a member of `oneof`_ ``_sole_tenant_only``.
        transferable (bool):
            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.

            This field is a member of `oneof`_ ``_transferable``.
        update_timestamp (str):
            [Output Only] Last update timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_update_timestamp``.
    """

    allowed_replacement_licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=195677718,
    )
    appendable_to_disk: bool = proto.Field(
        proto.BOOL,
        number=16959254,
        optional=True,
    )
    charges_use_fee: bool = proto.Field(
        proto.BOOL,
        number=372412622,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    incompatible_licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=334239768,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    license_code: int = proto.Field(
        proto.UINT64,
        number=1467179,
        optional=True,
    )
    minimum_retention: "Duration" = proto.Field(
        proto.MESSAGE,
        number=155398189,
        optional=True,
        message="Duration",
    )
    multi_tenant_only: bool = proto.Field(
        proto.BOOL,
        number=274395163,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    os_license: bool = proto.Field(
        proto.BOOL,
        number=487986406,
        optional=True,
    )
    removable_from_disk: bool = proto.Field(
        proto.BOOL,
        number=25854638,
        optional=True,
    )
    required_coattached_licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=129195265,
    )
    resource_requirements: "LicenseResourceRequirements" = proto.Field(
        proto.MESSAGE,
        number=214292769,
        optional=True,
        message="LicenseResourceRequirements",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    sole_tenant_only: bool = proto.Field(
        proto.BOOL,
        number=427525559,
        optional=True,
    )
    transferable: bool = proto.Field(
        proto.BOOL,
        number=4349893,
        optional=True,
    )
    update_timestamp: str = proto.Field(
        proto.STRING,
        number=120894752,
        optional=True,
    )


class LicenseCode(proto.Message):
    r"""Represents a License Code resource. A License Code is a unique
    identifier used to represent a license resource. *Caution* This
    resource is intended for use only by third-party partners who are
    creating Cloud Marketplace images.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            [Output Only] Description of this License Code.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always compute#licenseCode
            for licenses.

            This field is a member of `oneof`_ ``_kind``.
        license_alias (MutableSequence[google.cloud.compute_v1beta.types.LicenseCodeLicenseAlias]):
            [Output Only] URL and description aliases of Licenses with
            the same License Code.
        name (str):
            [Output Only] Name of the resource. The name is 1-20
            characters long and must be a valid 64 bit integer.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        state (str):
            [Output Only] Current state of this License Code. Check the
            State enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
        transferable (bool):
            [Output Only] If true, the license will remain attached when
            creating images or snapshots from disks. Otherwise, the
            license is not transferred.

            This field is a member of `oneof`_ ``_transferable``.
    """

    class State(proto.Enum):
        r"""[Output Only] Current state of this License Code.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            DISABLED (516696700):
                Machines are not allowed to attach boot disks
                with this License Code. Requests to create new
                resources with this license will be rejected.
            ENABLED (182130465):
                Use is allowed for anyone with USE_READ_ONLY access to this
                License Code.
            RESTRICTED (261551195):
                Use of this license is limited to a project
                whitelist.
            STATE_UNSPECIFIED (470755401):
                No description available.
            TERMINATED (250018339):
                Reserved state.
        """
        UNDEFINED_STATE = 0
        DISABLED = 516696700
        ENABLED = 182130465
        RESTRICTED = 261551195
        STATE_UNSPECIFIED = 470755401
        TERMINATED = 250018339

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    license_alias: MutableSequence["LicenseCodeLicenseAlias"] = proto.RepeatedField(
        proto.MESSAGE,
        number=43550930,
        message="LicenseCodeLicenseAlias",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    transferable: bool = proto.Field(
        proto.BOOL,
        number=4349893,
        optional=True,
    )


class LicenseCodeLicenseAlias(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            [Output Only] Description of this License Code.

            This field is a member of `oneof`_ ``_description``.
        self_link (str):
            [Output Only] URL of license corresponding to this License
            Code.

            This field is a member of `oneof`_ ``_self_link``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class LicenseResourceCommitment(proto.Message):
    r"""Commitment for a particular license resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        amount (int):
            The number of licenses you plan to purchase.

            This field is a member of `oneof`_ ``_amount``.
        cores_per_license (str):
            The number of cores per license.

            This field is a member of `oneof`_ ``_cores_per_license``.
        license_ (str):
            The applicable license URI.

            This field is a member of `oneof`_ ``_license``.
    """

    amount: int = proto.Field(
        proto.INT64,
        number=196759640,
        optional=True,
    )
    cores_per_license: str = proto.Field(
        proto.STRING,
        number=32482324,
        optional=True,
    )
    license_: str = proto.Field(
        proto.STRING,
        number=166757441,
        optional=True,
    )


class LicenseResourceRequirements(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        min_guest_cpu_count (int):
            [Input Only] Deprecated. This field no longer reflects the
            minimum number of guest cpus required to use the Instance.

            This field is a member of `oneof`_ ``_min_guest_cpu_count``.
        min_memory_mb (int):
            [Input Only] Deprecated. This field no longer reflects the
            minimum memory required to use the Instance.

            This field is a member of `oneof`_ ``_min_memory_mb``.
    """

    min_guest_cpu_count: int = proto.Field(
        proto.INT32,
        number=477964836,
        optional=True,
    )
    min_memory_mb: int = proto.Field(
        proto.INT32,
        number=504785894,
        optional=True,
    )


class LicensesListResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.License]):
            A list of License resources.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["License"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="License",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ListAcceleratorTypesRequest(proto.Message):
    r"""A request message for AcceleratorTypes.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListAddressesRequest(proto.Message):
    r"""A request message for Addresses.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListAssociationsFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.ListAssociations. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_resource (str):
            The target resource to list associations. It
            is an organization, or a folder.

            This field is a member of `oneof`_ ``_target_resource``.
    """

    target_resource: str = proto.Field(
        proto.STRING,
        number=467318524,
        optional=True,
    )


class ListAssociationsOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for
    OrganizationSecurityPolicies.ListAssociations. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_resource (str):
            The target resource to list associations. It
            is an organization, or a folder.

            This field is a member of `oneof`_ ``_target_resource``.
    """

    target_resource: str = proto.Field(
        proto.STRING,
        number=467318524,
        optional=True,
    )


class ListAutoscalersRequest(proto.Message):
    r"""A request message for Autoscalers.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            Name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListAvailableFeaturesRegionSslPoliciesRequest(proto.Message):
    r"""A request message for
    RegionSslPolicies.ListAvailableFeatures. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListAvailableFeaturesSslPoliciesRequest(proto.Message):
    r"""A request message for SslPolicies.ListAvailableFeatures. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListBackendBucketsRequest(proto.Message):
    r"""A request message for BackendBuckets.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListBackendServicesRequest(proto.Message):
    r"""A request message for BackendServices.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListBgpRoutesRoutersRequest(proto.Message):
    r"""A request message for Routers.ListBgpRoutes. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address_family (str):
            (Required) limit results to this address
            family (either IPv4 or IPv6) Check the
            AddressFamily enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_address_family``.
        destination_prefix (str):
            Limit results to destinations that are
            subnets of this CIDR range

            This field is a member of `oneof`_ ``_destination_prefix``.
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        peer (str):
            (Required) limit results to the BGP peer with
            the given name. Name should conform to RFC1035.

            This field is a member of `oneof`_ ``_peer``.
        policy_applied (bool):
            When true, the method returns post-policy
            routes. Otherwise, it returns pre-policy routes.

            This field is a member of `oneof`_ ``_policy_applied``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        route_type (str):
            (Required) limit results to this type of
            route (either LEARNED or ADVERTISED) Check the
            RouteType enum for the list of possible values.

            This field is a member of `oneof`_ ``_route_type``.
        router (str):
            Name or id of the resource for this request.
            Name should conform to RFC1035.
    """

    class AddressFamily(proto.Enum):
        r"""(Required) limit results to this address family (either IPv4
        or IPv6)

        Values:
            UNDEFINED_ADDRESS_FAMILY (0):
                A value indicating that the enum field is not
                set.
            IPV4 (2254341):
                No description available.
            IPV6 (2254343):
                No description available.
            UNSPECIFIED_IP_VERSION (72938440):
                No description available.
        """
        UNDEFINED_ADDRESS_FAMILY = 0
        IPV4 = 2254341
        IPV6 = 2254343
        UNSPECIFIED_IP_VERSION = 72938440

    class RouteType(proto.Enum):
        r"""(Required) limit results to this type of route (either
        LEARNED or ADVERTISED)

        Values:
            UNDEFINED_ROUTE_TYPE (0):
                A value indicating that the enum field is not
                set.
            ADVERTISED (20302109):
                No description available.
            LEARNED (231892419):
                No description available.
            UNSPECIFIED_ROUTE_TYPE (248064440):
                No description available.
        """
        UNDEFINED_ROUTE_TYPE = 0
        ADVERTISED = 20302109
        LEARNED = 231892419
        UNSPECIFIED_ROUTE_TYPE = 248064440

    address_family: str = proto.Field(
        proto.STRING,
        number=173744655,
        optional=True,
    )
    destination_prefix: str = proto.Field(
        proto.STRING,
        number=263872483,
        optional=True,
    )
    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    peer: str = proto.Field(
        proto.STRING,
        number=3436898,
        optional=True,
    )
    policy_applied: bool = proto.Field(
        proto.BOOL,
        number=379464304,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    route_type: str = proto.Field(
        proto.STRING,
        number=375888752,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class ListCrossSiteNetworksRequest(proto.Message):
    r"""A request message for CrossSiteNetworks.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListDiskTypesRequest(proto.Message):
    r"""A request message for DiskTypes.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListDisksRequest(proto.Message):
    r"""A request message for Disks.List. See the method description
    for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListDisksStoragePoolsRequest(proto.Message):
    r"""A request message for StoragePools.ListDisks. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        storage_pool (str):
            Name of the storage pool to list disks of.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    storage_pool: str = proto.Field(
        proto.STRING,
        number=360473440,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListErrorsInstanceGroupManagersRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.ListErrors. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group. It must be a string
            that meets the requirements in RFC1035, or an unsigned long
            integer: must match regexp pattern:
            (?:`a-z <?:[-a-z0-9]{0,61}[a-z0-9]>`__?)|1-9{0,19}.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the managed
            instance group is located. It should conform to
            RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListErrorsRegionInstanceGroupManagersRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.ListErrors.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group. It must be a string
            that meets the requirements in RFC1035, or an unsigned long
            integer: must match regexp pattern:
            (?:`a-z <?:[-a-z0-9]{0,61}[a-z0-9]>`__?)|1-9{0,19}.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request. This
            should conform to RFC1035.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListExternalVpnGatewaysRequest(proto.Message):
    r"""A request message for ExternalVpnGateways.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListFirewallPoliciesRequest(proto.Message):
    r"""A request message for FirewallPolicies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        parent_id (str):
            Parent ID for this request. The ID can be either be
            "folders/[FOLDER_ID]" if the parent is a folder or
            "organizations/[ORGANIZATION_ID]" if the parent is an
            organization.

            This field is a member of `oneof`_ ``_parent_id``.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListFirewallsRequest(proto.Message):
    r"""A request message for Firewalls.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListForwardingRulesRequest(proto.Message):
    r"""A request message for ForwardingRules.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListFutureReservationsRequest(proto.Message):
    r"""A request message for FutureReservations.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            Name of the zone for this request. Name
            should conform to RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListGlobalAddressesRequest(proto.Message):
    r"""A request message for GlobalAddresses.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListGlobalForwardingRulesRequest(proto.Message):
    r"""A request message for GlobalForwardingRules.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListGlobalNetworkEndpointGroupsRequest(proto.Message):
    r"""A request message for GlobalNetworkEndpointGroups.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListGlobalOperationsRequest(proto.Message):
    r"""A request message for GlobalOperations.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListGlobalOrganizationOperationsRequest(proto.Message):
    r"""A request message for GlobalOrganizationOperations.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        parent_id (str):
            Parent ID for this request.

            This field is a member of `oneof`_ ``_parent_id``.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListGlobalPublicDelegatedPrefixesRequest(proto.Message):
    r"""A request message for GlobalPublicDelegatedPrefixes.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListHealthChecksRequest(proto.Message):
    r"""A request message for HealthChecks.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListImagesRequest(proto.Message):
    r"""A request message for Images.List. See the method description
    for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The zone query parameter.

            This field is a member of `oneof`_ ``_zone``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class ListInstanceGroupManagerResizeRequestsRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagerResizeRequests.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group. The
            name should conform to RFC1035.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the managed
            instance group is located. The name should
            conform to RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListInstanceGroupManagersRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListInstanceGroupsRequest(proto.Message):
    r"""A request message for InstanceGroups.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the instance group
            is located.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListInstanceTemplatesRequest(proto.Message):
    r"""A request message for InstanceTemplates.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        view (str):
            View of the instance template.
            Check the View enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_view``.
    """

    class View(proto.Enum):
        r"""View of the instance template.

        Values:
            UNDEFINED_VIEW (0):
                A value indicating that the enum field is not
                set.
            BASIC (62970894):
                Include everything except Partner Metadata.
            FULL (2169487):
                Include everything.
            INSTANCE_VIEW_UNSPECIFIED (8444647):
                The default / unset value. The API will
                default to the BASIC view.
        """
        UNDEFINED_VIEW = 0
        BASIC = 62970894
        FULL = 2169487
        INSTANCE_VIEW_UNSPECIFIED = 8444647

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    view: str = proto.Field(
        proto.STRING,
        number=3619493,
        optional=True,
    )


class ListInstancesInstanceGroupsRequest(proto.Message):
    r"""A request message for InstanceGroups.ListInstances. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group (str):
            The name of the instance group from which you
            want to generate a list of included instances.
        instance_groups_list_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupsListInstancesRequest):
            The body resource for this request
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the instance group
            is located.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    instance_groups_list_instances_request_resource: "InstanceGroupsListInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=476255263,
        message="InstanceGroupsListInstancesRequest",
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListInstancesRegionInstanceGroupsRequest(proto.Message):
    r"""A request message for RegionInstanceGroups.ListInstances. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group (str):
            Name of the regional instance group for which
            we want to list the instances.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_groups_list_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupsListInstancesRequest):
            The body resource for this request
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_groups_list_instances_request_resource: "RegionInstanceGroupsListInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=48239828,
        message="RegionInstanceGroupsListInstancesRequest",
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListInstancesRequest(proto.Message):
    r"""A request message for Instances.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        view (str):
            View of the instance.
            Check the View enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_view``.
        zone (str):
            The name of the zone for this request.
    """

    class View(proto.Enum):
        r"""View of the instance.

        Values:
            UNDEFINED_VIEW (0):
                A value indicating that the enum field is not
                set.
            BASIC (62970894):
                Include everything except Partner Metadata.
            FULL (2169487):
                Include everything.
            INSTANCE_VIEW_UNSPECIFIED (8444647):
                The default / unset value. The API will
                default to the BASIC view.
        """
        UNDEFINED_VIEW = 0
        BASIC = 62970894
        FULL = 2169487
        INSTANCE_VIEW_UNSPECIFIED = 8444647

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    view: str = proto.Field(
        proto.STRING,
        number=3619493,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListInstantSnapshotsRequest(proto.Message):
    r"""A request message for InstantSnapshots.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListInterconnectAttachmentGroupsRequest(proto.Message):
    r"""A request message for InterconnectAttachmentGroups.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListInterconnectAttachmentsRequest(proto.Message):
    r"""A request message for InterconnectAttachments.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListInterconnectGroupsRequest(proto.Message):
    r"""A request message for InterconnectGroups.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListInterconnectLocationsRequest(proto.Message):
    r"""A request message for InterconnectLocations.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListInterconnectRemoteLocationsRequest(proto.Message):
    r"""A request message for InterconnectRemoteLocations.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListInterconnectsRequest(proto.Message):
    r"""A request message for Interconnects.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListLicensesRequest(proto.Message):
    r"""A request message for Licenses.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListMachineImagesRequest(proto.Message):
    r"""A request message for MachineImages.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListMachineTypesRequest(proto.Message):
    r"""A request message for MachineTypes.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListManagedInstancesInstanceGroupManagersRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.ListManagedInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListManagedInstancesRegionInstanceGroupManagersRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.ListManagedInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNetworkAttachmentsRequest(proto.Message):
    r"""A request message for NetworkAttachments.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNetworkEndpointGroupsRequest(proto.Message):
    r"""A request message for NetworkEndpointGroups.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the network
            endpoint group is located. It should comply with
            RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListNetworkEndpointsGlobalNetworkEndpointGroupsRequest(proto.Message):
    r"""A request message for
    GlobalNetworkEndpointGroups.ListNetworkEndpoints. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        network_endpoint_group (str):
            The name of the network endpoint group from
            which you want to generate a list of included
            network endpoints. It should comply with
            RFC1035.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNetworkEndpointsNetworkEndpointGroupsRequest(proto.Message):
    r"""A request message for
    NetworkEndpointGroups.ListNetworkEndpoints. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        network_endpoint_group (str):
            The name of the network endpoint group from
            which you want to generate a list of included
            network endpoints. It should comply with
            RFC1035.
        network_endpoint_groups_list_endpoints_request_resource (google.cloud.compute_v1beta.types.NetworkEndpointGroupsListEndpointsRequest):
            The body resource for this request
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the network
            endpoint group is located. It should comply with
            RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    network_endpoint_groups_list_endpoints_request_resource: "NetworkEndpointGroupsListEndpointsRequest" = proto.Field(
        proto.MESSAGE,
        number=59493390,
        message="NetworkEndpointGroupsListEndpointsRequest",
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListNetworkEndpointsRegionNetworkEndpointGroupsRequest(proto.Message):
    r"""A request message for
    RegionNetworkEndpointGroups.ListNetworkEndpoints. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        network_endpoint_group (str):
            The name of the network endpoint group from
            which you want to generate a list of included
            network endpoints. It should comply with
            RFC1035.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where the network
            endpoint group is located. It should comply with
            RFC1035.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    network_endpoint_group: str = proto.Field(
        proto.STRING,
        number=433907078,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNetworkFirewallPoliciesRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNetworkProfilesRequest(proto.Message):
    r"""A request message for NetworkProfiles.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNetworksRequest(proto.Message):
    r"""A request message for Networks.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNodeGroupsRequest(proto.Message):
    r"""A request message for NodeGroups.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListNodeTemplatesRequest(proto.Message):
    r"""A request message for NodeTemplates.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListNodeTypesRequest(proto.Message):
    r"""A request message for NodeTypes.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListNodesNodeGroupsRequest(proto.Message):
    r"""A request message for NodeGroups.ListNodes. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        node_group (str):
            Name of the NodeGroup resource whose nodes
            you want to list.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListOrganizationSecurityPoliciesRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        parent_id (str):
            Parent ID for this request.

            This field is a member of `oneof`_ ``_parent_id``.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPacketMirroringsRequest(proto.Message):
    r"""A request message for PacketMirrorings.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPeeringRoutesNetworksRequest(proto.Message):
    r"""A request message for Networks.ListPeeringRoutes. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        direction (str):
            The direction of the exchanged routes.
            Check the Direction enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_direction``.
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        network (str):
            Name of the network for this request.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        peering_name (str):
            The response will show routes exchanged over
            the given peering connection.

            This field is a member of `oneof`_ ``_peering_name``.
        project (str):
            Project ID for this request.
        region (str):
            The region of the request. The response will
            include all subnet routes, static routes and
            dynamic routes in the region.

            This field is a member of `oneof`_ ``_region``.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    class Direction(proto.Enum):
        r"""The direction of the exchanged routes.

        Values:
            UNDEFINED_DIRECTION (0):
                A value indicating that the enum field is not
                set.
            INCOMING (338552870):
                For routes exported from peer network.
            OUTGOING (307438444):
                For routes exported from local network.
        """
        UNDEFINED_DIRECTION = 0
        INCOMING = 338552870
        OUTGOING = 307438444

    direction: str = proto.Field(
        proto.STRING,
        number=111150975,
        optional=True,
    )
    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    peering_name: str = proto.Field(
        proto.STRING,
        number=249571370,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPerInstanceConfigsInstanceGroupManagersRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.ListPerInstanceConfigs. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone where the managed
            instance group is located. It should conform to
            RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListPerInstanceConfigsRegionInstanceGroupManagersRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.ListPerInstanceConfigs. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request,
            should conform to RFC1035.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPreconfiguredExpressionSetsOrganizationSecurityPoliciesRequest(proto.Message):
    r"""A request message for
    OrganizationSecurityPolicies.ListPreconfiguredExpressionSets.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        parent_id (str):
            Parent ID for this request.

            This field is a member of `oneof`_ ``_parent_id``.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPreconfiguredExpressionSetsSecurityPoliciesRequest(proto.Message):
    r"""A request message for
    SecurityPolicies.ListPreconfiguredExpressionSets. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPreviewFeaturesRequest(proto.Message):
    r"""A request message for PreviewFeatures.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPublicAdvertisedPrefixesRequest(proto.Message):
    r"""A request message for PublicAdvertisedPrefixes.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListPublicDelegatedPrefixesRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListReferrersInstancesRequest(proto.Message):
    r"""A request message for Instances.ListReferrers. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance (str):
            Name of the target instance scoping this
            request, or '-' if the request should span over
            all instances in the container.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListRegionAutoscalersRequest(proto.Message):
    r"""A request message for RegionAutoscalers.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionBackendServicesRequest(proto.Message):
    r"""A request message for RegionBackendServices.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionCommitmentsRequest(proto.Message):
    r"""A request message for RegionCommitments.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionDiskTypesRequest(proto.Message):
    r"""A request message for RegionDiskTypes.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionDisksRequest(proto.Message):
    r"""A request message for RegionDisks.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionHealthCheckServicesRequest(proto.Message):
    r"""A request message for RegionHealthCheckServices.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionHealthChecksRequest(proto.Message):
    r"""A request message for RegionHealthChecks.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionInstanceGroupManagerResizeRequestsRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagerResizeRequests.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        instance_group_manager (str):
            The name of the managed instance group. The
            name should conform to RFC1035.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request. Name
            should conform to RFC1035.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionInstanceGroupManagersRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionInstanceGroupsRequest(proto.Message):
    r"""A request message for RegionInstanceGroups.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionInstanceTemplatesRequest(proto.Message):
    r"""A request message for RegionInstanceTemplates.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the regions for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        view (str):
            View of the instance template.
            Check the View enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_view``.
    """

    class View(proto.Enum):
        r"""View of the instance template.

        Values:
            UNDEFINED_VIEW (0):
                A value indicating that the enum field is not
                set.
            BASIC (62970894):
                Include everything except Partner Metadata.
            FULL (2169487):
                Include everything.
            INSTANCE_VIEW_UNSPECIFIED (8444647):
                The default / unset value. The API will
                default to the BASIC view.
        """
        UNDEFINED_VIEW = 0
        BASIC = 62970894
        FULL = 2169487
        INSTANCE_VIEW_UNSPECIFIED = 8444647

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    view: str = proto.Field(
        proto.STRING,
        number=3619493,
        optional=True,
    )


class ListRegionInstantSnapshotsRequest(proto.Message):
    r"""A request message for RegionInstantSnapshots.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionMultiMigsRequest(proto.Message):
    r"""A request message for RegionMultiMigs.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionNetworkEndpointGroupsRequest(proto.Message):
    r"""A request message for RegionNetworkEndpointGroups.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region where the network
            endpoint group is located. It should comply with
            RFC1035.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionNetworkFirewallPoliciesRequest(proto.Message):
    r"""A request message for RegionNetworkFirewallPolicies.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionNotificationEndpointsRequest(proto.Message):
    r"""A request message for RegionNotificationEndpoints.List. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionOperationsRequest(proto.Message):
    r"""A request message for RegionOperations.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionSecurityPoliciesRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionSnapshotsRequest(proto.Message):
    r"""A request message for RegionSnapshots.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionSslCertificatesRequest(proto.Message):
    r"""A request message for RegionSslCertificates.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionSslPoliciesRequest(proto.Message):
    r"""A request message for RegionSslPolicies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionTargetHttpProxiesRequest(proto.Message):
    r"""A request message for RegionTargetHttpProxies.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionTargetHttpsProxiesRequest(proto.Message):
    r"""A request message for RegionTargetHttpsProxies.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionTargetTcpProxiesRequest(proto.Message):
    r"""A request message for RegionTargetTcpProxies.List. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionUrlMapsRequest(proto.Message):
    r"""A request message for RegionUrlMaps.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionZonesRequest(proto.Message):
    r"""A request message for RegionZones.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRegionsRequest(proto.Message):
    r"""A request message for Regions.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListReservationBlocksRequest(proto.Message):
    r"""A request message for ReservationBlocks.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        reservation (str):
            The name of the reservation. Name should
            conform to RFC1035 or be a resource ID.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            Name of the zone for this request. Zone name
            should conform to RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListReservationsRequest(proto.Message):
    r"""A request message for Reservations.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            Name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListResourcePoliciesRequest(proto.Message):
    r"""A request message for ResourcePolicies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRoutePoliciesRoutersRequest(proto.Message):
    r"""A request message for Routers.ListRoutePolicies. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        router (str):
            Name or id of the resource for this request.
            Name should conform to RFC1035.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class ListRoutersRequest(proto.Message):
    r"""A request message for Routers.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListRoutesRequest(proto.Message):
    r"""A request message for Routes.List. See the method description
    for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListSecurityPoliciesRequest(proto.Message):
    r"""A request message for SecurityPolicies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListServiceAttachmentsRequest(proto.Message):
    r"""A request message for ServiceAttachments.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region of this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListSnapshotsRequest(proto.Message):
    r"""A request message for Snapshots.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListSslCertificatesRequest(proto.Message):
    r"""A request message for SslCertificates.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListSslPoliciesRequest(proto.Message):
    r"""A request message for SslPolicies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListStoragePoolTypesRequest(proto.Message):
    r"""A request message for StoragePoolTypes.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListStoragePoolsRequest(proto.Message):
    r"""A request message for StoragePools.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            The name of the zone for this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListSubnetworksRequest(proto.Message):
    r"""A request message for Subnetworks.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListTargetGrpcProxiesRequest(proto.Message):
    r"""A request message for TargetGrpcProxies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListTargetHttpProxiesRequest(proto.Message):
    r"""A request message for TargetHttpProxies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListTargetHttpsProxiesRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListTargetInstancesRequest(proto.Message):
    r"""A request message for TargetInstances.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            Name of the zone scoping this request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListTargetPoolsRequest(proto.Message):
    r"""A request message for TargetPools.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListTargetSslProxiesRequest(proto.Message):
    r"""A request message for TargetSslProxies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListTargetTcpProxiesRequest(proto.Message):
    r"""A request message for TargetTcpProxies.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListTargetVpnGatewaysRequest(proto.Message):
    r"""A request message for TargetVpnGateways.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListUrlMapsRequest(proto.Message):
    r"""A request message for UrlMaps.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListUsableBackendBucketsRequest(proto.Message):
    r"""A request message for BackendBuckets.ListUsable. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListUsableBackendServicesRequest(proto.Message):
    r"""A request message for BackendServices.ListUsable. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListUsableRegionBackendServicesRequest(proto.Message):
    r"""A request message for RegionBackendServices.ListUsable. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request. It
            must be a string that meets the requirements in
            RFC1035.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListUsableSubnetworksRequest(proto.Message):
    r"""A request message for Subnetworks.ListUsable. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        service_project (str):
            The project id or project number in which the subnetwork is
            intended to be used. Only applied for Shared VPC. See
            `Shared VPC
            documentation <https://cloud.google.com/vpc/docs/shared-vpc/>`__

            This field is a member of `oneof`_ ``_service_project``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    service_project: str = proto.Field(
        proto.STRING,
        number=530592655,
        optional=True,
    )


class ListVpnGatewaysRequest(proto.Message):
    r"""A request message for VpnGateways.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListVpnTunnelsRequest(proto.Message):
    r"""A request message for VpnTunnels.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListWireGroupsRequest(proto.Message):
    r"""A request message for WireGroups.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cross_site_network (str):

        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListXpnHostsProjectsRequest(proto.Message):
    r"""A request message for Projects.ListXpnHosts. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        projects_list_xpn_hosts_request_resource (google.cloud.compute_v1beta.types.ProjectsListXpnHostsRequest):
            The body resource for this request
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    projects_list_xpn_hosts_request_resource: "ProjectsListXpnHostsRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=238266391,
            message="ProjectsListXpnHostsRequest",
        )
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class ListZoneOperationsRequest(proto.Message):
    r"""A request message for ZoneOperations.List. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
        zone (str):
            Name of the zone for request.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ListZonesRequest(proto.Message):
    r"""A request message for Zones.List. See the method description
    for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter (str):
            A filter expression that filters resources listed in the
            response. Most Compute resources support two types of filter
            expressions: expressions that support regular expressions
            and expressions that follow API improvement proposal
            AIP-160. These two types of filter expressions cannot be
            mixed in one request. If you want to use AIP-160, your
            expression must specify the field name, an operator, and the
            value that you want to use for filtering. The value must be
            a string, a number, or a boolean. The operator must be
            either ``=``, ``!=``, ``>``, ``<``, ``<=``, ``>=`` or ``:``.
            For example, if you are filtering Compute Engine instances,
            you can exclude instances named ``example-instance`` by
            specifying ``name != example-instance``. The ``:*``
            comparison can be used to test whether a key has been
            defined. For example, to find all objects with ``owner``
            label use: ``labels.owner:*`` You can also filter nested
            fields. For example, you could specify
            ``scheduling.automaticRestart = false`` to include instances
            only if they are not scheduled for automatic restarts. You
            can use filtering on nested fields to filter based on
            resource labels. To filter on multiple expressions, provide
            each separate expression within parentheses. For example:
            ``(scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")``
            By default, each expression is an ``AND`` expression.
            However, you can include ``AND`` and ``OR`` expressions
            explicitly. For example:
            ``(cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true)``
            If you want to use a regular expression, use the ``eq``
            (equal) or ``ne`` (not equal) operator against a single
            un-parenthesized expression with or without quotes or
            against multiple parenthesized expressions. Examples:
            ``fieldname eq unquoted literal``
            ``fieldname eq 'single quoted literal'``
            ``fieldname eq "double quoted literal"``
            ``(fieldname1 eq literal) (fieldname2 ne "literal")`` The
            literal value is interpreted as a regular expression using
            Google RE2 library syntax. The literal value must match the
            entire field. For example, to filter for instances that do
            not end with name "instance", you would use
            ``name ne .*instance``. You cannot combine constraints on
            multiple fields using regular expressions.

            This field is a member of `oneof`_ ``_filter``.
        max_results (int):
            The maximum number of results per page that should be
            returned. If the number of available results is larger than
            ``maxResults``, Compute Engine returns a ``nextPageToken``
            that can be used to get the next page of results in
            subsequent list requests. Acceptable values are ``0`` to
            ``500``, inclusive. (Default: ``500``)

            This field is a member of `oneof`_ ``_max_results``.
        order_by (str):
            Sorts list results by a certain order. By default, results
            are returned in alphanumerical order based on the resource
            name. You can also sort results in descending order based on
            the creation timestamp using
            ``orderBy="creationTimestamp desc"``. This sorts results
            based on the ``creationTimestamp`` field in reverse
            chronological order (newest result first). Use this to sort
            resources like operations so that the newest operation is
            returned first. Currently, only sorting by ``name`` or
            ``creationTimestamp desc`` is supported.

            This field is a member of `oneof`_ ``_order_by``.
        page_token (str):
            Specifies a page token to use. Set ``pageToken`` to the
            ``nextPageToken`` returned by a previous list request to get
            the next page of results.

            This field is a member of `oneof`_ ``_page_token``.
        project (str):
            Project ID for this request.
        return_partial_success (bool):
            Opt-in for partial success behavior which
            provides partial results in case of failure. The
            default value is false. For example, when
            partial success behavior is enabled,
            aggregatedList for a single zone scope either
            returns all resources in the zone or no
            resources, with an error code.

            This field is a member of `oneof`_ ``_return_partial_success``.
    """

    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )
    max_results: int = proto.Field(
        proto.UINT32,
        number=54715419,
        optional=True,
    )
    order_by: str = proto.Field(
        proto.STRING,
        number=160562920,
        optional=True,
    )
    page_token: str = proto.Field(
        proto.STRING,
        number=19994697,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    return_partial_success: bool = proto.Field(
        proto.BOOL,
        number=517198390,
        optional=True,
    )


class LocalDisk(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_count (int):
            Specifies the number of such disks.

            This field is a member of `oneof`_ ``_disk_count``.
        disk_size_gb (int):
            Specifies the size of the disk in base-2 GB.

            This field is a member of `oneof`_ ``_disk_size_gb``.
        disk_type (str):
            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.

            This field is a member of `oneof`_ ``_disk_type``.
    """

    disk_count: int = proto.Field(
        proto.INT32,
        number=182933485,
        optional=True,
    )
    disk_size_gb: int = proto.Field(
        proto.INT32,
        number=316263735,
        optional=True,
    )
    disk_type: str = proto.Field(
        proto.STRING,
        number=93009052,
        optional=True,
    )


class LocalizedMessage(proto.Message):
    r"""Provides a localized error message that is safe to return to
    the user which can be attached to an RPC error.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        locale (str):
            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".

            This field is a member of `oneof`_ ``_locale``.
        message (str):
            The localized error message in the above
            locale.

            This field is a member of `oneof`_ ``_message``.
    """

    locale: str = proto.Field(
        proto.STRING,
        number=513150554,
        optional=True,
    )
    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )


class LocationPolicy(proto.Message):
    r"""Configuration for location policy among multiple possible
    locations (e.g. preferences for zone selection among zones in a
    single region).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        locations (MutableMapping[str, google.cloud.compute_v1beta.types.LocationPolicyLocation]):
            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.
        target_shape (str):
            Strategy for distributing VMs across zones in
            a region. Check the TargetShape enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_target_shape``.
    """

    class TargetShape(proto.Enum):
        r"""Strategy for distributing VMs across zones in a region.

        Values:
            UNDEFINED_TARGET_SHAPE (0):
                A value indicating that the enum field is not
                set.
            ANY (64972):
                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 (61100880):
                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 (468409608):
                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.
        """
        UNDEFINED_TARGET_SHAPE = 0
        ANY = 64972
        ANY_SINGLE_ZONE = 61100880
        BALANCED = 468409608

    locations: MutableMapping[str, "LocationPolicyLocation"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=413423454,
        message="LocationPolicyLocation",
    )
    target_shape: str = proto.Field(
        proto.STRING,
        number=338621299,
        optional=True,
    )


class LocationPolicyLocation(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        constraints (google.cloud.compute_v1beta.types.LocationPolicyLocationConstraints):
            Constraints that the caller requires on the
            result distribution in this zone.

            This field is a member of `oneof`_ ``_constraints``.
        preference (str):
            Preference for a given location. Set to
            either ALLOW or DENY. Check the Preference enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_preference``.
    """

    class Preference(proto.Enum):
        r"""Preference for a given location. Set to either ALLOW or DENY.

        Values:
            UNDEFINED_PREFERENCE (0):
                A value indicating that the enum field is not
                set.
            ALLOW (62368553):
                Location is allowed for use.
            DENY (2094604):
                Location is prohibited.
            PREFERENCE_UNSPECIFIED (496219571):
                Default value, unused.
        """
        UNDEFINED_PREFERENCE = 0
        ALLOW = 62368553
        DENY = 2094604
        PREFERENCE_UNSPECIFIED = 496219571

    constraints: "LocationPolicyLocationConstraints" = proto.Field(
        proto.MESSAGE,
        number=3909174,
        optional=True,
        message="LocationPolicyLocationConstraints",
    )
    preference: str = proto.Field(
        proto.STRING,
        number=150781147,
        optional=True,
    )


class LocationPolicyLocationConstraints(proto.Message):
    r"""Per-zone constraints on location policy for this zone.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_count (int):
            Maximum number of items that are allowed to
            be placed in this zone. The value must be
            non-negative.

            This field is a member of `oneof`_ ``_max_count``.
    """

    max_count: int = proto.Field(
        proto.INT32,
        number=287620724,
        optional=True,
    )


class MachineImage(proto.Message):
    r"""Represents a machine image resource. A machine image is a
    Compute Engine resource that stores all the configuration,
    metadata, permissions, and data from one or more disks required
    to create a Virtual machine (VM) instance. For more information,
    see Machine images.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] The creation timestamp for this machine image
            in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        guest_flush (bool):
            [Input Only] Whether to attempt an application consistent
            machine image by informing the OS to prepare for the
            snapshot process.

            This field is a member of `oneof`_ ``_guest_flush``.
        id (int):
            [Output Only] A unique identifier for this machine image.
            The server defines this identifier.

            This field is a member of `oneof`_ ``_id``.
        instance_properties (google.cloud.compute_v1beta.types.InstanceProperties):
            [Output Only] Properties of source instance

            This field is a member of `oneof`_ ``_instance_properties``.
        kind (str):
            [Output Only] The resource type, which is always
            compute#machineImage for machine image.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels to apply to this machine image. These
            can be later modified by the setLabels method.
        machine_image_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Encrypts the machine image using a
            customer-supplied encryption key. After you
            encrypt a machine image using a
            customer-supplied key, you must provide the same
            key if you use the machine image later. For
            example, you must provide the encryption key
            when you create an instance from the encrypted
            machine image in a future request.
            Customer-supplied encryption keys do not protect
            access to metadata of the machine image. If you
            do not provide an encryption key when creating
            the machine image, then the machine image will
            be encrypted using an automatically generated
            key and you do not need to provide a key to use
            the machine image later.

            This field is a member of `oneof`_ ``_machine_image_encryption_key``.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        satisfies_pzi (bool):
            Output only. Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzi``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        saved_disks (MutableSequence[google.cloud.compute_v1beta.types.SavedDisk]):
            An array of Machine Image specific properties
            for disks attached to the source instance
        self_link (str):
            [Output Only] The URL for this machine image. The server
            defines this URL.

            This field is a member of `oneof`_ ``_self_link``.
        source_disk_encryption_keys (MutableSequence[google.cloud.compute_v1beta.types.SourceDiskEncryptionKey]):
            [Input Only] The customer-supplied encryption key of the
            disks attached to the source instance. Required if the
            source disk is protected by a customer-supplied encryption
            key.
        source_instance (str):
            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

            This field is a member of `oneof`_ ``_source_instance``.
        source_instance_properties (google.cloud.compute_v1beta.types.SourceInstanceProperties):
            [Output Only] DEPRECATED: Please use instance_properties
            instead for source instance related properties. New
            properties will not be added to this field.

            This field is a member of `oneof`_ ``_source_instance_properties``.
        status (str):
            [Output Only] The status of the machine image. One of the
            following values: INVALID, CREATING, READY, DELETING, and
            UPLOADING. Check the Status enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_status``.
        storage_locations (MutableSequence[str]):
            The regional or multi-regional Cloud Storage
            bucket location where the machine image is
            stored.
        total_storage_bytes (int):
            [Output Only] Total size of the storage used by the machine
            image.

            This field is a member of `oneof`_ ``_total_storage_bytes``.
    """

    class Status(proto.Enum):
        r"""[Output Only] The status of the machine image. One of the following
        values: INVALID, CREATING, READY, DELETING, and UPLOADING.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                No description available.
            DELETING (528602024):
                No description available.
            INVALID (530283991):
                No description available.
            READY (77848963):
                No description available.
            UPLOADING (267603489):
                No description available.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        INVALID = 530283991
        READY = 77848963
        UPLOADING = 267603489

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    guest_flush: bool = proto.Field(
        proto.BOOL,
        number=385550813,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instance_properties: "InstanceProperties" = proto.Field(
        proto.MESSAGE,
        number=215355165,
        optional=True,
        message="InstanceProperties",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    machine_image_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=528089087,
        optional=True,
        message="CustomerEncryptionKey",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    satisfies_pzi: bool = proto.Field(
        proto.BOOL,
        number=480964257,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    saved_disks: MutableSequence["SavedDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=397424318,
        message="SavedDisk",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    source_disk_encryption_keys: MutableSequence[
        "SourceDiskEncryptionKey"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=370408498,
        message="SourceDiskEncryptionKey",
    )
    source_instance: str = proto.Field(
        proto.STRING,
        number=396315705,
        optional=True,
    )
    source_instance_properties: "SourceInstanceProperties" = proto.Field(
        proto.MESSAGE,
        number=475195641,
        optional=True,
        message="SourceInstanceProperties",
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    storage_locations: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=328005274,
    )
    total_storage_bytes: int = proto.Field(
        proto.INT64,
        number=81855468,
        optional=True,
    )


class MachineImageList(proto.Message):
    r"""A list of machine images.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.MachineImage]):
            A list of MachineImage resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#machineImagesListResponse for machine image lists.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["MachineImage"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="MachineImage",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class MachineType(proto.Message):
    r"""Represents a Machine Type resource. You can use specific
    machine types for your VM instances based on performance and
    pricing requirements. For more information, read Machine Types.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerators (MutableSequence[google.cloud.compute_v1beta.types.Accelerators]):
            [Output Only] A list of accelerator configurations assigned
            to this machine type.
        architecture (str):
            [Output Only] The architecture of the machine type. Check
            the Architecture enum for the list of possible values.

            This field is a member of `oneof`_ ``_architecture``.
        bundled_local_ssds (google.cloud.compute_v1beta.types.BundledLocalSsds):
            [Output Only] The configuration of bundled local SSD for the
            machine type.

            This field is a member of `oneof`_ ``_bundled_local_ssds``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            [Output Only] The deprecation status associated with this
            machine type. Only applicable if the machine type is
            unavailable.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            [Output Only] An optional textual description of the
            resource.

            This field is a member of `oneof`_ ``_description``.
        guest_cpus (int):
            [Output Only] The number of virtual CPUs that are available
            to the instance.

            This field is a member of `oneof`_ ``_guest_cpus``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        image_space_gb (int):

            This field is a member of `oneof`_ ``_image_space_gb``.
        is_shared_cpu (bool):
            [Output Only] Whether this machine type has a shared CPU.
            See Shared-core machine types for more information.

            This field is a member of `oneof`_ ``_is_shared_cpu``.
        kind (str):
            [Output Only] The type of the resource. Always
            compute#machineType for machine types.

            This field is a member of `oneof`_ ``_kind``.
        maximum_persistent_disks (int):
            [Output Only] Maximum persistent disks allowed.

            This field is a member of `oneof`_ ``_maximum_persistent_disks``.
        maximum_persistent_disks_size_gb (int):
            [Output Only] Maximum total persistent disks size (GB)
            allowed.

            This field is a member of `oneof`_ ``_maximum_persistent_disks_size_gb``.
        memory_mb (int):
            [Output Only] The amount of physical memory available to the
            instance, defined in MB.

            This field is a member of `oneof`_ ``_memory_mb``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        zone (str):
            [Output Only] The name of the zone where the machine type
            resides, such as us-central1-a.

            This field is a member of `oneof`_ ``_zone``.
    """

    class Architecture(proto.Enum):
        r"""[Output Only] The architecture of the machine type.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    accelerators: MutableSequence["Accelerators"] = proto.RepeatedField(
        proto.MESSAGE,
        number=269577064,
        message="Accelerators",
    )
    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    bundled_local_ssds: "BundledLocalSsds" = proto.Field(
        proto.MESSAGE,
        number=387462016,
        optional=True,
        message="BundledLocalSsds",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    guest_cpus: int = proto.Field(
        proto.INT32,
        number=393356754,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    image_space_gb: int = proto.Field(
        proto.INT32,
        number=75331864,
        optional=True,
    )
    is_shared_cpu: bool = proto.Field(
        proto.BOOL,
        number=521399555,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    maximum_persistent_disks: int = proto.Field(
        proto.INT32,
        number=496220941,
        optional=True,
    )
    maximum_persistent_disks_size_gb: int = proto.Field(
        proto.INT64,
        number=154274471,
        optional=True,
    )
    memory_mb: int = proto.Field(
        proto.INT32,
        number=116001171,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class MachineTypeAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.MachineTypesScopedList]):
            A list of MachineTypesScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#machineTypeAggregatedList for aggregated lists of
            machine types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "MachineTypesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="MachineTypesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class MachineTypeList(proto.Message):
    r"""Contains a list of machine types.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.MachineType]):
            A list of MachineType resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#machineTypeList for lists of machine types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["MachineType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="MachineType",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class MachineTypesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        machine_types (MutableSequence[google.cloud.compute_v1beta.types.MachineType]):
            [Output Only] A list of machine types contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that appears when the
            machine types list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    machine_types: MutableSequence["MachineType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=79720065,
        message="MachineType",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ManagedInstance(proto.Message):
    r"""A Managed Instance resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        all_instances_config (google.cloud.compute_v1beta.types.ManagedInstanceAllInstancesConfig):
            [Output Only] Current all-instances configuration revision
            applied to this instance.

            This field is a member of `oneof`_ ``_all_instances_config``.
        current_action (str):
            [Output Only] The current action that the managed instance
            group has scheduled for the instance. Possible values: -
            NONE The instance is running, and the managed instance group
            does not have any scheduled actions for this instance. -
            CREATING The managed instance group is creating this
            instance. If the group fails to create this instance, it
            will try again until it is successful. -
            CREATING_WITHOUT_RETRIES The managed instance group is
            attempting to create this instance only once. If the group
            fails to create this instance, it does not try again and the
            group's targetSize value is decreased instead. - RECREATING
            The managed instance group is recreating this instance. -
            DELETING The managed instance group is permanently deleting
            this instance. - ABANDONING The managed instance group is
            abandoning this instance. The instance will be removed from
            the instance group and from any target pools that are
            associated with this group. - RESTARTING The managed
            instance group is restarting the instance. - REFRESHING The
            managed instance group is applying configuration changes to
            the instance without stopping it. For example, the group can
            update the target pool list for an instance without stopping
            that instance. - VERIFYING The managed instance group has
            created the instance and it is in the process of being
            verified. Check the CurrentAction enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_current_action``.
        id (int):
            [Output only] The unique identifier for this resource. This
            field is empty when instance does not exist.

            This field is a member of `oneof`_ ``_id``.
        instance (str):
            [Output Only] The URL of the instance. The URL can exist
            even if the instance has not yet been created.

            This field is a member of `oneof`_ ``_instance``.
        instance_health (MutableSequence[google.cloud.compute_v1beta.types.ManagedInstanceInstanceHealth]):
            [Output Only] Health state of the instance per health-check.
        instance_status (str):
            [Output Only] The status of the instance. This field is
            empty when the instance does not exist. Check the
            InstanceStatus enum for the list of possible values.

            This field is a member of `oneof`_ ``_instance_status``.
        last_attempt (google.cloud.compute_v1beta.types.ManagedInstanceLastAttempt):
            [Output Only] Information about the last attempt to create
            or delete the instance.

            This field is a member of `oneof`_ ``_last_attempt``.
        name (str):
            [Output Only] The name of the instance. The name always
            exists even if the instance has not yet been created.

            This field is a member of `oneof`_ ``_name``.
        preserved_state_from_config (google.cloud.compute_v1beta.types.PreservedState):
            [Output Only] Preserved state applied from per-instance
            config for this instance.

            This field is a member of `oneof`_ ``_preserved_state_from_config``.
        preserved_state_from_policy (google.cloud.compute_v1beta.types.PreservedState):
            [Output Only] Preserved state generated based on stateful
            policy for this instance.

            This field is a member of `oneof`_ ``_preserved_state_from_policy``.
        properties_from_flexibility_policy (google.cloud.compute_v1beta.types.ManagedInstancePropertiesFromFlexibilityPolicy):
            [Output Only] Instance properties selected for this instance
            resulting from InstanceFlexibilityPolicy.

            This field is a member of `oneof`_ ``_properties_from_flexibility_policy``.
        target_status (str):
            [Output Only] The eventual status of the instance. The
            instance group manager will not be identified as stable till
            each managed instance reaches its targetStatus. Check the
            TargetStatus enum for the list of possible values.

            This field is a member of `oneof`_ ``_target_status``.
        version (google.cloud.compute_v1beta.types.ManagedInstanceVersion):
            [Output Only] Intended version of this instance.

            This field is a member of `oneof`_ ``_version``.
    """

    class CurrentAction(proto.Enum):
        r"""[Output Only] The current action that the managed instance group has
        scheduled for the instance. Possible values: - NONE The instance is
        running, and the managed instance group does not have any scheduled
        actions for this instance. - CREATING The managed instance group is
        creating this instance. If the group fails to create this instance,
        it will try again until it is successful. - CREATING_WITHOUT_RETRIES
        The managed instance group is attempting to create this instance
        only once. If the group fails to create this instance, it does not
        try again and the group's targetSize value is decreased instead. -
        RECREATING The managed instance group is recreating this instance. -
        DELETING The managed instance group is permanently deleting this
        instance. - ABANDONING The managed instance group is abandoning this
        instance. The instance will be removed from the instance group and
        from any target pools that are associated with this group. -
        RESTARTING The managed instance group is restarting the instance. -
        REFRESHING The managed instance group is applying configuration
        changes to the instance without stopping it. For example, the group
        can update the target pool list for an instance without stopping
        that instance. - VERIFYING The managed instance group has created
        the instance and it is in the process of being verified. Additional
        supported values which may be not listed in the enum directly due to
        technical reasons: STOPPING SUSPENDING

        Values:
            UNDEFINED_CURRENT_ACTION (0):
                A value indicating that the enum field is not
                set.
            ABANDONING (388244813):
                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 (455564985):
                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 (428843785):
                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 (528602024):
                The managed instance group is permanently
                deleting this instance.
            NONE (2402104):
                The managed instance group has not scheduled
                any actions for this instance.
            RECREATING (287278572):
                The managed instance group is recreating this
                instance.
            REFRESHING (163266343):
                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 (320534387):
                The managed instance group is restarting this
                instance.
            RESUMING (446856618):
                The managed instance group is resuming this
                instance.
            STARTING (488820800):
                The managed instance group is starting this
                instance.
            VERIFYING (16982185):
                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).
        """
        UNDEFINED_CURRENT_ACTION = 0
        ABANDONING = 388244813
        CREATING = 455564985
        CREATING_WITHOUT_RETRIES = 428843785
        DELETING = 528602024
        NONE = 2402104
        RECREATING = 287278572
        REFRESHING = 163266343
        RESTARTING = 320534387
        RESUMING = 446856618
        STARTING = 488820800
        VERIFYING = 16982185

    class InstanceStatus(proto.Enum):
        r"""[Output Only] The status of the instance. This field is empty when
        the instance does not exist. Additional supported values which may
        be not listed in the enum directly due to technical reasons: RUNNING
        STOPPED STOPPING SUSPENDED SUSPENDING

        Values:
            UNDEFINED_INSTANCE_STATUS (0):
                A value indicating that the enum field is not
                set.
            DEPROVISIONING (428935662):
                The instance is halted and we are performing
                tear down tasks like network deprogramming,
                releasing quota, IP, tearing down disks etc.
            PENDING_STOP (362509770):
                The instance is gracefully shutting down.
            PROVISIONING (290896621):
                Resources are being allocated for the
                instance.
            REPAIRING (413483285):
                The instance is in repair.
            RUNNING (121282975):
                No description available.
            STAGING (431072283):
                All required resources have been allocated
                and the instance is being started.
            STOPPED (444276141):
                No description available.
            STOPPING (350791796):
                No description available.
            SUSPENDED (51223995):
                No description available.
            SUSPENDING (514206246):
                No description available.
            TERMINATED (250018339):
                The instance has stopped (either by explicit
                action or underlying failure).
        """
        UNDEFINED_INSTANCE_STATUS = 0
        DEPROVISIONING = 428935662
        PENDING_STOP = 362509770
        PROVISIONING = 290896621
        REPAIRING = 413483285
        RUNNING = 121282975
        STAGING = 431072283
        STOPPED = 444276141
        STOPPING = 350791796
        SUSPENDED = 51223995
        SUSPENDING = 514206246
        TERMINATED = 250018339

    class TargetStatus(proto.Enum):
        r"""[Output Only] The eventual status of the instance. The instance
        group manager will not be identified as stable till each managed
        instance reaches its targetStatus. Additional supported values which
        may be not listed in the enum directly due to technical reasons:
        RUNNING STOPPED SUSPENDED

        Values:
            UNDEFINED_TARGET_STATUS (0):
                A value indicating that the enum field is not
                set.
            ABANDONED (81797556):
                The managed instance will eventually be
                ABANDONED, i.e. dissociated from the managed
                instance group.
            DELETED (120962041):
                The managed instance will eventually be
                DELETED.
        """
        UNDEFINED_TARGET_STATUS = 0
        ABANDONED = 81797556
        DELETED = 120962041

    all_instances_config: "ManagedInstanceAllInstancesConfig" = proto.Field(
        proto.MESSAGE,
        number=112596737,
        optional=True,
        message="ManagedInstanceAllInstancesConfig",
    )
    current_action: str = proto.Field(
        proto.STRING,
        number=178475964,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )
    instance_health: MutableSequence[
        "ManagedInstanceInstanceHealth"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=382667078,
        message="ManagedInstanceInstanceHealth",
    )
    instance_status: str = proto.Field(
        proto.STRING,
        number=174577372,
        optional=True,
    )
    last_attempt: "ManagedInstanceLastAttempt" = proto.Field(
        proto.MESSAGE,
        number=434771492,
        optional=True,
        message="ManagedInstanceLastAttempt",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    preserved_state_from_config: "PreservedState" = proto.Field(
        proto.MESSAGE,
        number=98661858,
        optional=True,
        message="PreservedState",
    )
    preserved_state_from_policy: "PreservedState" = proto.Field(
        proto.MESSAGE,
        number=470783954,
        optional=True,
        message="PreservedState",
    )
    properties_from_flexibility_policy: "ManagedInstancePropertiesFromFlexibilityPolicy" = proto.Field(
        proto.MESSAGE,
        number=155525825,
        optional=True,
        message="ManagedInstancePropertiesFromFlexibilityPolicy",
    )
    target_status: str = proto.Field(
        proto.STRING,
        number=307799648,
        optional=True,
    )
    version: "ManagedInstanceVersion" = proto.Field(
        proto.MESSAGE,
        number=351608024,
        optional=True,
        message="ManagedInstanceVersion",
    )


class ManagedInstanceAllInstancesConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        revision (str):
            [Output Only] Current all-instances configuration revision.
            This value is in RFC3339 text format.

            This field is a member of `oneof`_ ``_revision``.
    """

    revision: str = proto.Field(
        proto.STRING,
        number=276084699,
        optional=True,
    )


class ManagedInstanceInstanceHealth(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        detailed_health_state (str):
            [Output Only] The current detailed instance health state.
            Check the DetailedHealthState enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_detailed_health_state``.
        health_check (str):
            [Output Only] The URL for the health check that verifies
            whether the instance is healthy.

            This field is a member of `oneof`_ ``_health_check``.
    """

    class DetailedHealthState(proto.Enum):
        r"""[Output Only] The current detailed instance health state.

        Values:
            UNDEFINED_DETAILED_HEALTH_STATE (0):
                A value indicating that the enum field is not
                set.
            DRAINING (480455402):
                The instance is being drained. The existing
                connections to the instance have time to
                complete, but the new ones are being refused.
            HEALTHY (439801213):
                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 (477813057):
                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 (462118084):
                The instance is reachable, but does not
                conform to the requirements defined by the
                health check.
            UNKNOWN (433141802):
                The health checking system is aware of the
                instance but its health is not known at the
                moment.
        """
        UNDEFINED_DETAILED_HEALTH_STATE = 0
        DRAINING = 480455402
        HEALTHY = 439801213
        TIMEOUT = 477813057
        UNHEALTHY = 462118084
        UNKNOWN = 433141802

    detailed_health_state: str = proto.Field(
        proto.STRING,
        number=510470173,
        optional=True,
    )
    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
        optional=True,
    )


class ManagedInstanceLastAttempt(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        errors (google.cloud.compute_v1beta.types.ManagedInstanceLastAttemptErrors):
            [Output Only] Encountered errors during the last attempt to
            create or delete the instance.

            This field is a member of `oneof`_ ``_errors``.
    """

    errors: "ManagedInstanceLastAttemptErrors" = proto.Field(
        proto.MESSAGE,
        number=315977579,
        optional=True,
        message="ManagedInstanceLastAttemptErrors",
    )


class ManagedInstanceLastAttemptErrors(proto.Message):
    r"""[Output Only] Encountered errors during the last attempt to create
    or delete the instance.

    Attributes:
        errors (MutableSequence[google.cloud.compute_v1beta.types.Errors]):
            [Output Only] The array of errors encountered while
            processing this operation.
    """

    errors: MutableSequence["Errors"] = proto.RepeatedField(
        proto.MESSAGE,
        number=315977579,
        message="Errors",
    )


class ManagedInstancePropertiesFromFlexibilityPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        machine_type (str):
            The machine type to be used for this
            instance.

            This field is a member of `oneof`_ ``_machine_type``.
        provisioning_model (str):
            The provisioning model to be used for this
            instance. Check the ProvisioningModel enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_provisioning_model``.
    """

    class ProvisioningModel(proto.Enum):
        r"""The provisioning model to be used for this instance.

        Values:
            UNDEFINED_PROVISIONING_MODEL (0):
                A value indicating that the enum field is not
                set.
            FLEX_START (101746812):
                Instance is provisioned using the Flex Start
                provisioning model and has a limited runtime.
            RESERVATION_BOUND (293538571):
                Bound to the lifecycle of the reservation in
                which it is provisioned.
            SPOT (2552066):
                Heavily discounted, no guaranteed runtime.
            STANDARD (484642493):
                Standard provisioning with user controlled
                runtime, no discounts.
        """
        UNDEFINED_PROVISIONING_MODEL = 0
        FLEX_START = 101746812
        RESERVATION_BOUND = 293538571
        SPOT = 2552066
        STANDARD = 484642493

    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
        optional=True,
    )
    provisioning_model: str = proto.Field(
        proto.STRING,
        number=494423,
        optional=True,
    )


class ManagedInstanceVersion(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            [Output Only] The intended template of the instance. This
            field is empty when current_action is one of { DELETING,
            ABANDONING }.

            This field is a member of `oneof`_ ``_instance_template``.
        name (str):
            [Output Only] Name of the version.

            This field is a member of `oneof`_ ``_name``.
    """

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class Metadata(proto.Message):
    r"""A metadata key/value entry.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            Specifies a fingerprint for this request,
            which is essentially a hash of the metadata's
            contents and used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update metadata. You must always provide an
            up-to-date fingerprint hash in order to update
            or change metadata, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve the resource.

            This field is a member of `oneof`_ ``_fingerprint``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Items]):
            Array of key/value pairs. The total size of
            all keys and values must be less than 512 KB.
        kind (str):
            [Output Only] Type of the resource. Always compute#metadata
            for metadata.

            This field is a member of `oneof`_ ``_kind``.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    items: MutableSequence["Items"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Items",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )


class MetadataFilter(proto.Message):
    r"""Opaque filter criteria used by load balancers to restrict routing
    configuration to a limited set of load balancing proxies. Proxies
    and sidecars involved in load balancing would typically present
    metadata to the load balancers that need to match criteria specified
    here. If a match takes place, the relevant configuration is made
    available to those proxies. For each metadataFilter in this list, if
    its filterMatchCriteria is set to MATCH_ANY, at least one of the
    filterLabels must match the corresponding label provided in the
    metadata. If its filterMatchCriteria is set to MATCH_ALL, then all
    of its filterLabels must match with corresponding labels provided in
    the metadata. An example for using metadataFilters would be: if load
    balancing involves Envoys, they receive routing configuration when
    values in metadataFilters match values supplied in of their XDS
    requests to loadbalancers.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        filter_labels (MutableSequence[google.cloud.compute_v1beta.types.MetadataFilterLabelMatch]):
            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.
        filter_match_criteria (str):
            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. Check the
            FilterMatchCriteria enum for the list of possible values.

            This field is a member of `oneof`_ ``_filter_match_criteria``.
    """

    class FilterMatchCriteria(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_FILTER_MATCH_CRITERIA (0):
                A value indicating that the enum field is not
                set.
            MATCH_ALL (180663271):
                Specifies that all filterLabels must match
                for the metadataFilter to be considered a match.
            MATCH_ANY (180663346):
                Specifies that any filterLabel must match for
                the metadataFilter to be considered a match.
            NOT_SET (163646646):
                Indicates that the match criteria was not
                set. A metadataFilter must never be created with
                this value.
        """
        UNDEFINED_FILTER_MATCH_CRITERIA = 0
        MATCH_ALL = 180663271
        MATCH_ANY = 180663346
        NOT_SET = 163646646

    filter_labels: MutableSequence["MetadataFilterLabelMatch"] = proto.RepeatedField(
        proto.MESSAGE,
        number=307903142,
        message="MetadataFilterLabelMatch",
    )
    filter_match_criteria: str = proto.Field(
        proto.STRING,
        number=239970368,
        optional=True,
    )


class MetadataFilterLabelMatch(proto.Message):
    r"""MetadataFilter label name value pairs that are expected to
    match corresponding labels presented as metadata to the load
    balancer.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of metadata label. The name can have a
            maximum length of 1024 characters and must be at
            least 1 character long.

            This field is a member of `oneof`_ ``_name``.
        value (str):
            The value of the label must match the
            specified value. value can have a maximum length
            of 1024 characters.

            This field is a member of `oneof`_ ``_value``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    value: str = proto.Field(
        proto.STRING,
        number=111972721,
        optional=True,
    )


class MoveAddressRequest(proto.Message):
    r"""A request message for Addresses.Move. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            Name of the address resource to move.
        project (str):
            Source project ID which the Address is moved
            from.
        region (str):
            Name of the region for this request.
        region_addresses_move_request_resource (google.cloud.compute_v1beta.types.RegionAddressesMoveRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_addresses_move_request_resource: "RegionAddressesMoveRequest" = proto.Field(
        proto.MESSAGE,
        number=409081924,
        message="RegionAddressesMoveRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class MoveDiskProjectRequest(proto.Message):
    r"""A request message for Projects.MoveDisk. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_move_request_resource (google.cloud.compute_v1beta.types.DiskMoveRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disk_move_request_resource: "DiskMoveRequest" = proto.Field(
        proto.MESSAGE,
        number=313008458,
        message="DiskMoveRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class MoveFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.Move. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        parent_id (str):
            The new parent of the firewall policy. The ID can be either
            be "folders/[FOLDER_ID]" if the parent is a folder or
            "organizations/[ORGANIZATION_ID]" if the parent is an
            organization.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class MoveGlobalAddressRequest(proto.Message):
    r"""A request message for GlobalAddresses.Move. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            Name of the address resource to move.
        global_addresses_move_request_resource (google.cloud.compute_v1beta.types.GlobalAddressesMoveRequest):
            The body resource for this request
        project (str):
            Source project ID which the Address is moved
            from.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
    )
    global_addresses_move_request_resource: "GlobalAddressesMoveRequest" = proto.Field(
        proto.MESSAGE,
        number=302807283,
        message="GlobalAddressesMoveRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class MoveInstanceProjectRequest(proto.Message):
    r"""A request message for Projects.MoveInstance. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_move_request_resource (google.cloud.compute_v1beta.types.InstanceMoveRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_move_request_resource: "InstanceMoveRequest" = proto.Field(
        proto.MESSAGE,
        number=311664194,
        message="InstanceMoveRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class MoveOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.Move. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        parent_id (str):
            The new parent of the security policy.

            This field is a member of `oneof`_ ``_parent_id``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
    """

    parent_id: str = proto.Field(
        proto.STRING,
        number=459714768,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class MultiMig(proto.Message):
    r"""Multi-MIG represents a group of managed instance groups.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output only] The creation timestamp of this multi-MIG in
            RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output only] The unique identifier for this resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output only] Type of the resource. Always compute#multiMig
            for multi-MIGs.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            The name of the multi-MIG. 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.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [Output only] The URL of the region where the resource
            resides. You must specify this field as part of the HTTP
            request URL. You cannot set the region as a field in the
            request body.

            This field is a member of `oneof`_ ``_region``.
        resource_policies (google.cloud.compute_v1beta.types.MultiMigResourcePolicies):
            Resource policies for this multi-MIG.

            This field is a member of `oneof`_ ``_resource_policies``.
        self_link (str):
            [Output only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    resource_policies: "MultiMigResourcePolicies" = proto.Field(
        proto.MESSAGE,
        number=22220385,
        optional=True,
        message="MultiMigResourcePolicies",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class MultiMigResourcePolicies(proto.Message):
    r"""Resource policies message for a multi-MIG. Specifies the
    workload policy configuration of the multi-MIG.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        workload_policy (str):
            The URL of the workload policy for this
            multi-MIG. 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

            This field is a member of `oneof`_ ``_workload_policy``.
    """

    workload_policy: str = proto.Field(
        proto.STRING,
        number=114721530,
        optional=True,
    )


class MultiMigsList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            Unique identifier for the resource; defined
            by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.MultiMig]):
            A list of multi-MIGs in the specified project
            and region.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            This token allows you to get the next page of
            results for maxResults, use the nextPageToken as
            a value for the query parameter pageToken in the
            next list request. Subsequent list requests will
            have their own nextPageToken to continue paging
            through the results.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["MultiMig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="MultiMig",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NamedPort(proto.Message):
    r"""The named port. For example: <"http", 80>.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            The name for this named port. The name must
            be 1-63 characters long, and comply with
            RFC1035.

            This field is a member of `oneof`_ ``_name``.
        port (int):
            The port number, which can be a value between
            1 and 65535.

            This field is a member of `oneof`_ ``_port``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )


class NatIpInfo(proto.Message):
    r"""Contains NAT IP information of a NAT config (i.e. usage
    status, mode).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        nat_ip_info_mappings (MutableSequence[google.cloud.compute_v1beta.types.NatIpInfoNatIpInfoMapping]):
            A list of all NAT IPs assigned to this NAT
            config.
        nat_name (str):
            Name of the NAT config which the NAT IP
            belongs to.

            This field is a member of `oneof`_ ``_nat_name``.
    """

    nat_ip_info_mappings: MutableSequence[
        "NatIpInfoNatIpInfoMapping"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=241401884,
        message="NatIpInfoNatIpInfoMapping",
    )
    nat_name: str = proto.Field(
        proto.STRING,
        number=425596649,
        optional=True,
    )


class NatIpInfoNatIpInfoMapping(proto.Message):
    r"""Contains information of a NAT IP.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        mode (str):
            Specifies whether NAT IP is auto or manual.
            Check the Mode enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_mode``.
        nat_ip (str):
            NAT IP address. For example: 203.0.113.11.

            This field is a member of `oneof`_ ``_nat_ip``.
        usage (str):
            Specifies whether NAT IP is currently serving
            at least one endpoint or not. Check the Usage
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_usage``.
    """

    class Mode(proto.Enum):
        r"""Specifies whether NAT IP is auto or manual.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            AUTO (2020783):
                No description available.
            MANUAL (119397318):
                No description available.
        """
        UNDEFINED_MODE = 0
        AUTO = 2020783
        MANUAL = 119397318

    class Usage(proto.Enum):
        r"""Specifies whether NAT IP is currently serving at least one
        endpoint or not.

        Values:
            UNDEFINED_USAGE (0):
                A value indicating that the enum field is not
                set.
            IN_USE (17393485):
                No description available.
            UNUSED (360643030):
                No description available.
        """
        UNDEFINED_USAGE = 0
        IN_USE = 17393485
        UNUSED = 360643030

    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )
    nat_ip: str = proto.Field(
        proto.STRING,
        number=21113093,
        optional=True,
    )
    usage: str = proto.Field(
        proto.STRING,
        number=111574433,
        optional=True,
    )


class NatIpInfoResponse(proto.Message):
    r"""

    Attributes:
        result (MutableSequence[google.cloud.compute_v1beta.types.NatIpInfo]):
            [Output Only] A list of NAT IP information.
    """

    result: MutableSequence["NatIpInfo"] = proto.RepeatedField(
        proto.MESSAGE,
        number=139315229,
        message="NatIpInfo",
    )


class Network(proto.Message):
    r"""Represents a VPC Network resource. Networks connect resources
    to each other and to the internet. For more information, read
    Virtual Private Cloud (VPC) Network.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        I_pv4_range (str):
            Deprecated in favor of subnet mode networks.
            The range of internal addresses that are legal
            on this network. This range is a CIDR
            specification, for example: 192.168.0.0/16.
            Provided by the client when the network is
            created.

            This field is a member of `oneof`_ ``_I_pv4_range``.
        auto_create_subnetworks (bool):
            Must be set to create a VPC network. If not
            set, a legacy network is created. When set to
            true, the VPC network is created in auto mode.
            When set to false, the VPC network is created in
            custom mode. An auto mode VPC network starts
            with one subnet per region. Each subnet has a
            predetermined range as described in Auto mode
            VPC network IP ranges. For custom mode VPC
            networks, you can add subnets using the
            subnetworks insert method.

            This field is a member of `oneof`_ ``_auto_create_subnetworks``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this field when you create the resource.

            This field is a member of `oneof`_ ``_description``.
        enable_ula_internal_ipv6 (bool):
            Enable ULA internal ipv6 on this network.
            Enabling this feature will assign a /48 from
            google defined ULA prefix fd20::/20. .

            This field is a member of `oneof`_ ``_enable_ula_internal_ipv6``.
        firewall_policy (str):
            [Output Only] URL of the firewall policy the network is
            associated with.

            This field is a member of `oneof`_ ``_firewall_policy``.
        gateway_i_pv4 (str):
            [Output Only] The gateway address for default routing out of
            the network, selected by Google Cloud.

            This field is a member of `oneof`_ ``_gateway_i_pv4``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        internal_ipv6_range (str):
            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. .

            This field is a member of `oneof`_ ``_internal_ipv6_range``.
        kind (str):
            [Output Only] Type of the resource. Always compute#network
            for networks.

            This field is a member of `oneof`_ ``_kind``.
        mtu (int):
            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.

            This field is a member of `oneof`_ ``_mtu``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?``. The first character must be
            a lowercase letter, and all following characters (except for
            the last character) must be a dash, lowercase letter, or
            digit. The last character must be a lowercase letter or
            digit.

            This field is a member of `oneof`_ ``_name``.
        network_firewall_policy_enforcement_order (str):
            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.
            Check the NetworkFirewallPolicyEnforcementOrder enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_network_firewall_policy_enforcement_order``.
        network_profile (str):
            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}

            This field is a member of `oneof`_ ``_network_profile``.
        params (google.cloud.compute_v1beta.types.NetworkParams):
            Input only. [Input Only] Additional params passed with the
            request, but not persisted as part of resource payload.

            This field is a member of `oneof`_ ``_params``.
        peerings (MutableSequence[google.cloud.compute_v1beta.types.NetworkPeering]):
            [Output Only] A list of network peerings for the resource.
        routing_config (google.cloud.compute_v1beta.types.NetworkRoutingConfig):
            The network-level routing configuration for
            this network. Used by Cloud Router to determine
            what type of network-wide routing behavior to
            enforce.

            This field is a member of `oneof`_ ``_routing_config``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        subnetworks (MutableSequence[str]):
            [Output Only] Server-defined fully-qualified URLs for all
            subnetworks in this VPC network.
    """

    class NetworkFirewallPolicyEnforcementOrder(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_NETWORK_FIREWALL_POLICY_ENFORCEMENT_ORDER (0):
                A value indicating that the enum field is not
                set.
            AFTER_CLASSIC_FIREWALL (154582608):
                No description available.
            BEFORE_CLASSIC_FIREWALL (338458349):
                No description available.
        """
        UNDEFINED_NETWORK_FIREWALL_POLICY_ENFORCEMENT_ORDER = 0
        AFTER_CLASSIC_FIREWALL = 154582608
        BEFORE_CLASSIC_FIREWALL = 338458349

    I_pv4_range: str = proto.Field(
        proto.STRING,
        number=59234358,
        optional=True,
    )
    auto_create_subnetworks: bool = proto.Field(
        proto.BOOL,
        number=256156690,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    enable_ula_internal_ipv6: bool = proto.Field(
        proto.BOOL,
        number=423757720,
        optional=True,
    )
    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
        optional=True,
    )
    gateway_i_pv4: str = proto.Field(
        proto.STRING,
        number=178678877,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    internal_ipv6_range: str = proto.Field(
        proto.STRING,
        number=277456807,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    mtu: int = proto.Field(
        proto.INT32,
        number=108462,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network_firewall_policy_enforcement_order: str = proto.Field(
        proto.STRING,
        number=6504784,
        optional=True,
    )
    network_profile: str = proto.Field(
        proto.STRING,
        number=173112472,
        optional=True,
    )
    params: "NetworkParams" = proto.Field(
        proto.MESSAGE,
        number=78313862,
        optional=True,
        message="NetworkParams",
    )
    peerings: MutableSequence["NetworkPeering"] = proto.RepeatedField(
        proto.MESSAGE,
        number=69883187,
        message="NetworkPeering",
    )
    routing_config: "NetworkRoutingConfig" = proto.Field(
        proto.MESSAGE,
        number=523556059,
        optional=True,
        message="NetworkRoutingConfig",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    subnetworks: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=415853125,
    )


class NetworkAttachment(proto.Message):
    r"""NetworkAttachments A network attachment resource ...

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        connection_endpoints (MutableSequence[google.cloud.compute_v1beta.types.NetworkAttachmentConnectedEndpoint]):
            [Output Only] An array of connections for all the producers
            connected to this network attachment.
        connection_preference (str):
            Check the ConnectionPreference enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_connection_preference``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            [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.

            This field is a member of `oneof`_ ``_network``.
        producer_accept_lists (MutableSequence[str]):
            Projects that are allowed to connect to this
            network attachment. The project can be specified
            using its id or number.
        producer_reject_lists (MutableSequence[str]):
            Projects that are not allowed to connect to
            this network attachment. The project can be
            specified using its id or number.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource's
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        subnetworks (MutableSequence[str]):
            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.
    """

    class ConnectionPreference(proto.Enum):
        r"""

        Values:
            UNDEFINED_CONNECTION_PREFERENCE (0):
                A value indicating that the enum field is not
                set.
            ACCEPT_AUTOMATIC (75250580):
                No description available.
            ACCEPT_MANUAL (373061341):
                No description available.
            INVALID (530283991):
                No description available.
        """
        UNDEFINED_CONNECTION_PREFERENCE = 0
        ACCEPT_AUTOMATIC = 75250580
        ACCEPT_MANUAL = 373061341
        INVALID = 530283991

    connection_endpoints: MutableSequence[
        "NetworkAttachmentConnectedEndpoint"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=326078813,
        message="NetworkAttachmentConnectedEndpoint",
    )
    connection_preference: str = proto.Field(
        proto.STRING,
        number=285818076,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    producer_accept_lists: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=202804523,
    )
    producer_reject_lists: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=4112002,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    subnetworks: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=415853125,
    )


class NetworkAttachmentAggregatedList(proto.Message):
    r"""Contains a list of NetworkAttachmentsScopedList.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.NetworkAttachmentsScopedList]):
            A list of NetworkAttachmentsScopedList
            resources.
        kind (str):

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "NetworkAttachmentsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="NetworkAttachmentsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkAttachmentConnectedEndpoint(proto.Message):
    r"""[Output Only] A connection connected to this network attachment.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_address (str):
            The IPv4 address assigned to the producer
            instance network interface. This value will be a
            range in case of Serverless.

            This field is a member of `oneof`_ ``_ip_address``.
        ipv6_address (str):
            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.

            This field is a member of `oneof`_ ``_ipv6_address``.
        project_id_or_num (str):
            The project id or number of the interface to
            which the IP was assigned.

            This field is a member of `oneof`_ ``_project_id_or_num``.
        secondary_ip_cidr_ranges (MutableSequence[str]):
            Alias IP ranges from the same subnetwork.
        status (str):
            The status of a connected endpoint to this
            network attachment. Check the Status enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        subnetwork (str):
            The subnetwork used to assign the IP to the
            producer instance network interface.

            This field is a member of `oneof`_ ``_subnetwork``.
        subnetwork_cidr_range (str):
            [Output Only] The CIDR range of the subnet from which the
            IPv4 internal IP was allocated from.

            This field is a member of `oneof`_ ``_subnetwork_cidr_range``.
    """

    class Status(proto.Enum):
        r"""The status of a connected endpoint to this network
        attachment.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACCEPTED (246714279):
                The consumer allows traffic from the producer
                to reach its VPC.
            CLOSED (380163436):
                The consumer network attachment no longer
                exists.
            NEEDS_ATTENTION (344491452):
                The consumer needs to take further action
                before traffic can be served.
            PENDING (35394935):
                The consumer neither allows nor prohibits
                traffic from the producer to reach its VPC.
            REJECTED (174130302):
                The consumer prohibits traffic from the
                producer to reach its VPC.
            STATUS_UNSPECIFIED (42133066):
                No description available.
        """
        UNDEFINED_STATUS = 0
        ACCEPTED = 246714279
        CLOSED = 380163436
        NEEDS_ATTENTION = 344491452
        PENDING = 35394935
        REJECTED = 174130302
        STATUS_UNSPECIFIED = 42133066

    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    ipv6_address: str = proto.Field(
        proto.STRING,
        number=341563804,
        optional=True,
    )
    project_id_or_num: str = proto.Field(
        proto.STRING,
        number=349783336,
        optional=True,
    )
    secondary_ip_cidr_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=117184788,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )
    subnetwork_cidr_range: str = proto.Field(
        proto.STRING,
        number=383249827,
        optional=True,
    )


class NetworkAttachmentList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NetworkAttachment]):
            A list of NetworkAttachment resources.
        kind (str):

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NetworkAttachment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NetworkAttachment",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkAttachmentsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_attachments (MutableSequence[google.cloud.compute_v1beta.types.NetworkAttachment]):
            A list of NetworkAttachments contained in
            this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of network attachments when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    network_attachments: MutableSequence["NetworkAttachment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=521514783,
        message="NetworkAttachment",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkEdgeSecurityService(proto.Message):
    r"""Represents a Google Cloud Armor network edge security service
    resource.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            Fingerprint of this resource. A hash of the
            contents stored in this object. This field is
            used in optimistic locking. This field will be
            ignored when inserting a
            NetworkEdgeSecurityService. An up-to-date
            fingerprint must be provided in order to update
            the NetworkEdgeSecurityService, otherwise the
            request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve a
            NetworkEdgeSecurityService.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output only] Type of the resource. Always
            compute#networkEdgeSecurityService for
            NetworkEdgeSecurityServices

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        security_policy (str):
            The resource URL for the network edge
            security service associated with this network
            edge security service.

            This field is a member of `oneof`_ ``_security_policy``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )


class NetworkEdgeSecurityServiceAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.NetworkEdgeSecurityServicesScopedList]):
            A list of
            NetworkEdgeSecurityServicesScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#networkEdgeSecurityServiceAggregatedList for lists
            of Network Edge Security Services.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[
        str, "NetworkEdgeSecurityServicesScopedList"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="NetworkEdgeSecurityServicesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkEdgeSecurityServicesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_edge_security_services (MutableSequence[google.cloud.compute_v1beta.types.NetworkEdgeSecurityService]):
            A list of NetworkEdgeSecurityServices
            contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of security policies when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    network_edge_security_services: MutableSequence[
        "NetworkEdgeSecurityService"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=35530156,
        message="NetworkEdgeSecurityService",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkEndpoint(proto.Message):
    r"""The network endpoint.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        annotations (MutableMapping[str, str]):
            Optional metadata defined as annotations on
            the network endpoint.
        client_destination_port (int):
            Represents the port number to which PSC consumer sends
            packets. Optional. Only valid for network endpoint groups
            created with GCE_VM_IP_PORTMAP endpoint type.

            This field is a member of `oneof`_ ``_client_destination_port``.
        fqdn (str):
            Optional fully qualified domain name of network endpoint.
            This can only be specified when
            NetworkEndpointGroup.network_endpoint_type is
            NON_GCP_FQDN_PORT.

            This field is a member of `oneof`_ ``_fqdn``.
        instance (str):
            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 and GCE_VM_IP_PORT. The instance must be in the
            same zone of network endpoint group (for zonal NEGs) or in
            the zone within the region of the NEG (for regional NEGs).
            If the ipAddress is specified, it must belongs to the VM
            instance. The name must be 1-63 characters long, and comply
            with RFC1035 or be a valid URL pointing to an existing
            instance.

            This field is a member of `oneof`_ ``_instance``.
        ip_address (str):
            Optional IPv4 address of network endpoint. The IP address
            must belong to a VM in Compute Engine (either the primary IP
            or as part of an aliased IP range). If the IP address is not
            specified, then the primary IP address for the VM instance
            in the network that the network endpoint group belongs to
            will be used. This field is redundant and need not be set
            for network endpoints of type GCE_VM_IP. If set, it must be
            set to the primary internal IP address of the attached VM
            instance that matches the subnetwork of the NEG. The primary
            internal IP address from any NIC of a multi-NIC VM instance
            can be added to a NEG as long as it matches the NEG
            subnetwork.

            This field is a member of `oneof`_ ``_ip_address``.
        ipv6_address (str):
            Optional IPv6 address of network endpoint.

            This field is a member of `oneof`_ ``_ipv6_address``.
        port (int):
            Optional port number of network endpoint. If not specified,
            the defaultPort for the network endpoint group will be used.
            This field can not be set for network endpoints of type
            GCE_VM_IP.

            This field is a member of `oneof`_ ``_port``.
    """

    annotations: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=112032548,
    )
    client_destination_port: int = proto.Field(
        proto.INT32,
        number=123765766,
        optional=True,
    )
    fqdn: str = proto.Field(
        proto.STRING,
        number=3150485,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )
    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    ipv6_address: str = proto.Field(
        proto.STRING,
        number=341563804,
        optional=True,
    )
    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )


class NetworkEndpointGroup(proto.Message):
    r"""Represents a collection of network endpoints. A network
    endpoint group (NEG) defines how a set of endpoints should be
    reached, whether they are reachable, and where they are located.
    For more information about using NEGs for different use cases,
    see Network endpoint groups overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        annotations (MutableMapping[str, str]):
            Optional. Metadata defined as annotations on
            the network endpoint group.
        app_engine (google.cloud.compute_v1beta.types.NetworkEndpointGroupAppEngine):
            Optional. Only valid when networkEndpointType
            is SERVERLESS. Only one of cloudRun, appEngine
            or cloudFunction may be set.

            This field is a member of `oneof`_ ``_app_engine``.
        cloud_function (google.cloud.compute_v1beta.types.NetworkEndpointGroupCloudFunction):
            Optional. Only valid when networkEndpointType
            is SERVERLESS. Only one of cloudRun, appEngine
            or cloudFunction may be set.

            This field is a member of `oneof`_ ``_cloud_function``.
        cloud_run (google.cloud.compute_v1beta.types.NetworkEndpointGroupCloudRun):
            Optional. Only valid when networkEndpointType
            is SERVERLESS. Only one of cloudRun, appEngine
            or cloudFunction may be set.

            This field is a member of `oneof`_ ``_cloud_run``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        default_port (int):
            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.

            This field is a member of `oneof`_ ``_default_port``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#networkEndpointGroup for network endpoint group.

            This field is a member of `oneof`_ ``_kind``.
        load_balancer (google.cloud.compute_v1beta.types.NetworkEndpointGroupLbNetworkEndpointGroup):
            This field is only valid when the network endpoint group is
            used for load balancing. [Deprecated] This field is
            deprecated.

            This field is a member of `oneof`_ ``_load_balancer``.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            The URL of the network to which all network
            endpoints in the NEG belong. Uses default
            project network if unspecified.

            This field is a member of `oneof`_ ``_network``.
        network_endpoint_type (str):
            Type of network endpoints in this network endpoint group.
            Can be one of GCE_VM_IP, GCE_VM_IP_PORT,
            NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT,
            INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT,
            GCE_VM_IP_PORTMAP. Check the NetworkEndpointType enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_network_endpoint_type``.
        psc_data (google.cloud.compute_v1beta.types.NetworkEndpointGroupPscData):
            Optional. Only valid when networkEndpointType is
            PRIVATE_SERVICE_CONNECT.

            This field is a member of `oneof`_ ``_psc_data``.
        psc_target_service (str):
            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 is PRIVATE_SERVICE_CONNECT.

            This field is a member of `oneof`_ ``_psc_target_service``.
        region (str):
            [Output Only] The URL of the region where the network
            endpoint group is located.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        serverless_deployment (google.cloud.compute_v1beta.types.NetworkEndpointGroupServerlessDeployment):
            Only valid when networkEndpointType is
            SERVERLESS. Only one of cloudRun, appEngine,
            cloudFunction or serverlessDeployment may be
            set.

            This field is a member of `oneof`_ ``_serverless_deployment``.
        size (int):
            [Output only] Number of network endpoints in the network
            endpoint group.

            This field is a member of `oneof`_ ``_size``.
        subnetwork (str):
            Optional URL of the subnetwork to which all
            network endpoints in the NEG belong.

            This field is a member of `oneof`_ ``_subnetwork``.
        zone (str):
            [Output Only] The URL of the zone where the network endpoint
            group is located.

            This field is a member of `oneof`_ ``_zone``.
    """

    class NetworkEndpointType(proto.Enum):
        r"""Type of network endpoints in this network endpoint group. Can be one
        of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT,
        INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS,
        PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP.

        Values:
            UNDEFINED_NETWORK_ENDPOINT_TYPE (0):
                A value indicating that the enum field is not
                set.
            GCE_VM_IP (401880793):
                The network endpoint is represented by an IP
                address.
            GCE_VM_IP_PORT (501838375):
                The network endpoint is represented by IP
                address and port pair.
            GCE_VM_IP_PORTMAP (22819253):
                The network endpoint is represented by an IP,
                Port and Client Destination Port.
            INTERNET_FQDN_PORT (404154477):
                The network endpoint is represented by fully
                qualified domain name and port.
            INTERNET_IP_PORT (477719963):
                The network endpoint is represented by an
                internet IP address and port.
            NON_GCP_PRIVATE_IP_PORT (336447968):
                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 (48134724):
                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 (270492508):
                The network endpoint is handled by specified
                serverless infrastructure.
        """
        UNDEFINED_NETWORK_ENDPOINT_TYPE = 0
        GCE_VM_IP = 401880793
        GCE_VM_IP_PORT = 501838375
        GCE_VM_IP_PORTMAP = 22819253
        INTERNET_FQDN_PORT = 404154477
        INTERNET_IP_PORT = 477719963
        NON_GCP_PRIVATE_IP_PORT = 336447968
        PRIVATE_SERVICE_CONNECT = 48134724
        SERVERLESS = 270492508

    annotations: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=112032548,
    )
    app_engine: "NetworkEndpointGroupAppEngine" = proto.Field(
        proto.MESSAGE,
        number=340788768,
        optional=True,
        message="NetworkEndpointGroupAppEngine",
    )
    cloud_function: "NetworkEndpointGroupCloudFunction" = proto.Field(
        proto.MESSAGE,
        number=519893666,
        optional=True,
        message="NetworkEndpointGroupCloudFunction",
    )
    cloud_run: "NetworkEndpointGroupCloudRun" = proto.Field(
        proto.MESSAGE,
        number=111060353,
        optional=True,
        message="NetworkEndpointGroupCloudRun",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    default_port: int = proto.Field(
        proto.INT32,
        number=423377855,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    load_balancer: "NetworkEndpointGroupLbNetworkEndpointGroup" = proto.Field(
        proto.MESSAGE,
        number=525335631,
        optional=True,
        message="NetworkEndpointGroupLbNetworkEndpointGroup",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    network_endpoint_type: str = proto.Field(
        proto.STRING,
        number=118301523,
        optional=True,
    )
    psc_data: "NetworkEndpointGroupPscData" = proto.Field(
        proto.MESSAGE,
        number=71937481,
        optional=True,
        message="NetworkEndpointGroupPscData",
    )
    psc_target_service: str = proto.Field(
        proto.STRING,
        number=269132134,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    serverless_deployment: "NetworkEndpointGroupServerlessDeployment" = proto.Field(
        proto.MESSAGE,
        number=366651272,
        optional=True,
        message="NetworkEndpointGroupServerlessDeployment",
    )
    size: int = proto.Field(
        proto.INT32,
        number=3530753,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class NetworkEndpointGroupAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.NetworkEndpointGroupsScopedList]):
            A list of NetworkEndpointGroupsScopedList
            resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#networkEndpointGroupAggregatedList for aggregated
            lists of network endpoint groups.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "NetworkEndpointGroupsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="NetworkEndpointGroupsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkEndpointGroupAppEngine(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        service (str):
            Optional serving service. The service name is
            case-sensitive and must be 1-63 characters long.
            Example value: default, my-service.

            This field is a member of `oneof`_ ``_service``.
        url_mask (str):
            An URL mask is one of the main components of
            the Cloud Function. A template to parse service
            and version fields from a request URL. URL mask
            allows for routing to multiple App Engine
            services without having to create multiple
            Network Endpoint Groups and backend services.
            For example, the request URLs
            foo1-dot-appname.appspot.com/v1 and
            foo1-dot-appname.appspot.com/v2 can be backed by
            the same Serverless NEG with URL mask
            <service>-dot-appname.appspot.com/<version>. The
            URL mask will parse them to { service = "foo1",
            version = "v1" } and { service = "foo1", version
            = "v2" } respectively.

            This field is a member of `oneof`_ ``_url_mask``.
        version (str):
            Optional serving version. The version name is
            case-sensitive and must be 1-100 characters
            long. Example value: v1, v2.

            This field is a member of `oneof`_ ``_version``.
    """

    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )
    url_mask: str = proto.Field(
        proto.STRING,
        number=103352252,
        optional=True,
    )
    version: str = proto.Field(
        proto.STRING,
        number=351608024,
        optional=True,
    )


class NetworkEndpointGroupCloudFunction(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        function (str):
            A user-defined name of the Cloud Function.
            The function name is case-sensitive and must be
            1-63 characters long. Example value: func1.

            This field is a member of `oneof`_ ``_function``.
        url_mask (str):
            An URL mask is one of the main components of
            the Cloud Function. A template to parse function
            field from a request URL. URL mask allows for
            routing to multiple Cloud Functions without
            having to create multiple Network Endpoint
            Groups and backend services. For example,
            request URLs mydomain.com/function1 and
            mydomain.com/function2 can be backed by the same
            Serverless NEG with URL mask /<function>. The
            URL mask will parse them to { function =
            "function1" } and { function = "function2" }
            respectively.

            This field is a member of `oneof`_ ``_url_mask``.
    """

    function: str = proto.Field(
        proto.STRING,
        number=307196888,
        optional=True,
    )
    url_mask: str = proto.Field(
        proto.STRING,
        number=103352252,
        optional=True,
    )


class NetworkEndpointGroupCloudRun(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        service (str):
            Cloud Run service is the main resource of
            Cloud Run. The service must be 1-63 characters
            long, and comply with RFC1035. Example value:
            "run-service".

            This field is a member of `oneof`_ ``_service``.
        tag (str):
            Optional Cloud Run tag represents the
            "named-revision" to provide additional
            fine-grained traffic routing information. The
            tag must be 1-63 characters long, and comply
            with RFC1035. Example value: "revision-0010".

            This field is a member of `oneof`_ ``_tag``.
        url_mask (str):
            An URL mask is one of the main components of
            the Cloud Function. A template to parse
            <service> and <tag> fields from a request URL.
            URL mask allows for routing to multiple Run
            services without having to create multiple
            network endpoint groups and backend services.
            For example, request URLs foo1.domain.com/bar1
            and foo1.domain.com/bar2 can be backed by the
            same Serverless Network Endpoint Group (NEG)
            with URL mask <tag>.domain.com/<service>. The
            URL mask will parse them to { service="bar1",
            tag="foo1" } and { service="bar2", tag="foo2" }
            respectively.

            This field is a member of `oneof`_ ``_url_mask``.
    """

    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )
    tag: str = proto.Field(
        proto.STRING,
        number=114586,
        optional=True,
    )
    url_mask: str = proto.Field(
        proto.STRING,
        number=103352252,
        optional=True,
    )


class NetworkEndpointGroupLbNetworkEndpointGroup(proto.Message):
    r"""Load balancing specific fields for network endpoint group.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        default_port (int):
            The default port used if the port number is not specified in
            the network endpoint. If the network endpoint type is either
            GCE_VM_IP, SERVERLESS or PRIVATE_SERVICE_CONNECT, this field
            must not be specified. [Deprecated] This field is
            deprecated.

            This field is a member of `oneof`_ ``_default_port``.
        network (str):
            The URL of the network to which all network endpoints in the
            NEG belong. Uses default project network if unspecified.
            [Deprecated] This field is deprecated.

            This field is a member of `oneof`_ ``_network``.
        subnetwork (str):
            Optional URL of the subnetwork to which all network
            endpoints in the NEG belong. [Deprecated] This field is
            deprecated.

            This field is a member of `oneof`_ ``_subnetwork``.
        zone (str):
            [Output Only] The URL of the zone where the network endpoint
            group is located. [Deprecated] This field is deprecated.

            This field is a member of `oneof`_ ``_zone``.
    """

    default_port: int = proto.Field(
        proto.INT32,
        number=423377855,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class NetworkEndpointGroupList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpointGroup]):
            A list of NetworkEndpointGroup resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#networkEndpointGroupList for network endpoint group
            lists.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NetworkEndpointGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NetworkEndpointGroup",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkEndpointGroupPscData(proto.Message):
    r"""All data that is specifically relevant to only network endpoint
    groups of type PRIVATE_SERVICE_CONNECT.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        consumer_psc_address (str):
            [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.

            This field is a member of `oneof`_ ``_consumer_psc_address``.
        producer_port (int):
            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

            This field is a member of `oneof`_ ``_producer_port``.
        psc_connection_id (int):
            [Output Only] The PSC connection id of the PSC Network
            Endpoint Group Consumer.

            This field is a member of `oneof`_ ``_psc_connection_id``.
        psc_connection_status (str):
            [Output Only] The connection status of the PSC Forwarding
            Rule. Check the PscConnectionStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_psc_connection_status``.
    """

    class PscConnectionStatus(proto.Enum):
        r"""[Output Only] The connection status of the PSC Forwarding Rule.

        Values:
            UNDEFINED_PSC_CONNECTION_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACCEPTED (246714279):
                The connection has been accepted by the
                producer.
            CLOSED (380163436):
                The connection has been closed by the
                producer and will not serve traffic going
                forward.
            NEEDS_ATTENTION (344491452):
                The connection has been accepted by the
                producer, but the producer needs to take further
                action before the forwarding rule can serve
                traffic.
            PENDING (35394935):
                The connection is pending acceptance by the
                producer.
            REJECTED (174130302):
                The connection has been rejected by the
                producer.
            STATUS_UNSPECIFIED (42133066):
                No description available.
        """
        UNDEFINED_PSC_CONNECTION_STATUS = 0
        ACCEPTED = 246714279
        CLOSED = 380163436
        NEEDS_ATTENTION = 344491452
        PENDING = 35394935
        REJECTED = 174130302
        STATUS_UNSPECIFIED = 42133066

    consumer_psc_address: str = proto.Field(
        proto.STRING,
        number=452646572,
        optional=True,
    )
    producer_port: int = proto.Field(
        proto.INT32,
        number=410021134,
        optional=True,
    )
    psc_connection_id: int = proto.Field(
        proto.UINT64,
        number=292082397,
        optional=True,
    )
    psc_connection_status: str = proto.Field(
        proto.STRING,
        number=184149172,
        optional=True,
    )


class NetworkEndpointGroupServerlessDeployment(proto.Message):
    r"""Configuration for a serverless network endpoint group (NEG).
    The platform must be provided. Note: The target backend service
    must be in the same project and located in the same region as
    the Serverless NEG.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        platform (str):
            The platform of the backend target(s) of this
            NEG. The only supported value is API Gateway:
            apigateway.googleapis.com.

            This field is a member of `oneof`_ ``_platform``.
        resource (str):
            The user-defined name of the
            workload/instance. This value must be provided
            explicitly or in the urlMask. The resource
            identified by this value is platform-specific
            and is as follows: 1. API Gateway: The gateway
            ID 2. App Engine: The service name 3. Cloud
            Functions: The function name 4. Cloud Run: The
            service name

            This field is a member of `oneof`_ ``_resource``.
        url_mask (str):
            An URL mask is one of the main components of
            the Cloud Function. A template to parse
            platform-specific fields from a request URL. URL
            mask allows for routing to multiple resources on
            the same serverless platform without having to
            create multiple Network Endpoint Groups and
            backend resources. The fields parsed by this
            template are platform-specific and are as
            follows: 1. API Gateway: The gateway ID 2. App
            Engine: The service and version 3. Cloud
            Functions: The function name 4. Cloud Run: The
            service and tag

            This field is a member of `oneof`_ ``_url_mask``.
        version (str):
            The optional resource version. The version
            identified by this value is platform-specific
            and is follows: 1. API Gateway: Unused 2. App
            Engine: The service version 3. Cloud Functions:
            Unused 4. Cloud Run: The service tag

            This field is a member of `oneof`_ ``_version``.
    """

    platform: str = proto.Field(
        proto.STRING,
        number=264071283,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
        optional=True,
    )
    url_mask: str = proto.Field(
        proto.STRING,
        number=103352252,
        optional=True,
    )
    version: str = proto.Field(
        proto.STRING,
        number=351608024,
        optional=True,
    )


class NetworkEndpointGroupsAttachEndpointsRequest(proto.Message):
    r"""

    Attributes:
        network_endpoints (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpoint]):
            The list of network endpoints to be attached.
    """

    network_endpoints: MutableSequence["NetworkEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=149850285,
        message="NetworkEndpoint",
    )


class NetworkEndpointGroupsDetachEndpointsRequest(proto.Message):
    r"""

    Attributes:
        network_endpoints (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpoint]):
            The list of network endpoints to be detached.
    """

    network_endpoints: MutableSequence["NetworkEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=149850285,
        message="NetworkEndpoint",
    )


class NetworkEndpointGroupsListEndpointsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        endpoint_filters (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter]):
            Optional list of endpoints to query. This is a more
            efficient but also limited version of filter parameter.
            Endpoints in the filter must have ip_address and port fields
            populated, other fields are not supported.
        health_status (str):
            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. Check the
            HealthStatus enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_health_status``.
    """

    class HealthStatus(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_HEALTH_STATUS (0):
                A value indicating that the enum field is not
                set.
            SHOW (2544381):
                Show the health status for each network
                endpoint. Impacts latency of the call.
            SKIP (2547071):
                Health status for network endpoints will not
                be provided.
        """
        UNDEFINED_HEALTH_STATUS = 0
        SHOW = 2544381
        SKIP = 2547071

    endpoint_filters: MutableSequence[
        "NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=382665553,
        message="NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter",
    )
    health_status: str = proto.Field(
        proto.STRING,
        number=380545845,
        optional=True,
    )


class NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint (google.cloud.compute_v1beta.types.NetworkEndpoint):

            This field is a member of `oneof`_ ``_network_endpoint``.
    """

    network_endpoint: "NetworkEndpoint" = proto.Field(
        proto.MESSAGE,
        number=56789126,
        optional=True,
        message="NetworkEndpoint",
    )


class NetworkEndpointGroupsListNetworkEndpoints(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpointWithHealthStatus]):
            A list of NetworkEndpointWithHealthStatus
            resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#networkEndpointGroupsListNetworkEndpoints for the
            list of network endpoints in the specified network endpoint
            group.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NetworkEndpointWithHealthStatus"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NetworkEndpointWithHealthStatus",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkEndpointGroupsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_endpoint_groups (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpointGroup]):
            [Output Only] The list of network endpoint groups that are
            contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that replaces the
            list of network endpoint groups when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    network_endpoint_groups: MutableSequence[
        "NetworkEndpointGroup"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=29346733,
        message="NetworkEndpointGroup",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkEndpointWithHealthStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        healths (MutableSequence[google.cloud.compute_v1beta.types.HealthStatusForNetworkEndpoint]):
            [Output only] The health status of network endpoint.
            Optional. Displayed only if the network endpoint has
            centralized health checking configured.
        network_endpoint (google.cloud.compute_v1beta.types.NetworkEndpoint):
            [Output only] The network endpoint.

            This field is a member of `oneof`_ ``_network_endpoint``.
    """

    healths: MutableSequence["HealthStatusForNetworkEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=258689431,
        message="HealthStatusForNetworkEndpoint",
    )
    network_endpoint: "NetworkEndpoint" = proto.Field(
        proto.MESSAGE,
        number=56789126,
        optional=True,
        message="NetworkEndpoint",
    )


class NetworkFirewallPolicyAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.FirewallPoliciesScopedList]):
            A list of FirewallPoliciesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#networkFirewallPoliciesAggregatedList for lists of
            network firewall policies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "FirewallPoliciesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="FirewallPoliciesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkInterface(proto.Message):
    r"""A network interface resource attached to an instance.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_configs (MutableSequence[google.cloud.compute_v1beta.types.AccessConfig]):
            An array of configurations for this interface. Currently,
            only one access config, ONE_TO_ONE_NAT, is supported. If
            there are no accessConfigs specified, then this instance
            will have no external internet access.
        alias_ip_ranges (MutableSequence[google.cloud.compute_v1beta.types.AliasIpRange]):
            An array of alias IP ranges for this network
            interface. You can only specify this field for
            network interfaces in VPC networks.
        fingerprint (str):
            Fingerprint hash of contents stored in this
            network interface. This field will be ignored
            when inserting an Instance or adding a
            NetworkInterface. An up-to-date fingerprint must
            be provided in order to update the
            NetworkInterface. The request will fail with
            error 400 Bad Request if the fingerprint is not
            provided, or 412 Precondition Failed if the
            fingerprint is out of date.

            This field is a member of `oneof`_ ``_fingerprint``.
        igmp_query (str):
            Indicate whether igmp query is enabled on the
            network interface or not. If enabled, also
            indicates the version of IGMP supported. Check
            the IgmpQuery enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_igmp_query``.
        internal_ipv6_prefix_length (int):
            The prefix length of the primary internal
            IPv6 range.

            This field is a member of `oneof`_ ``_internal_ipv6_prefix_length``.
        ipv6_access_configs (MutableSequence[google.cloud.compute_v1beta.types.AccessConfig]):
            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.
        ipv6_access_type (str):
            [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. Check the Ipv6AccessType enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_ipv6_access_type``.
        ipv6_address (str):
            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.

            This field is a member of `oneof`_ ``_ipv6_address``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#networkInterface for network interfaces.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            [Output Only] The name of the network interface, which is
            generated by the server. For a VM, the network interface
            uses the nicN naming format. Where N is a value between 0
            and 7. The default interface value is nic0.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            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

            This field is a member of `oneof`_ ``_network``.
        network_attachment (str):
            The URL of the network attachment that this interface should
            connect to in the following format:
            projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.

            This field is a member of `oneof`_ ``_network_attachment``.
        network_i_p (str):
            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.

            This field is a member of `oneof`_ ``_network_i_p``.
        nic_type (str):
            The type of vNIC to be used on this
            interface. This may be gVNIC or VirtioNet. Check
            the NicType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_nic_type``.
        parent_nic_name (str):
            Name of the parent network interface of a
            dynamic network interface.

            This field is a member of `oneof`_ ``_parent_nic_name``.
        queue_count (int):
            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.

            This field is a member of `oneof`_ ``_queue_count``.
        stack_type (str):
            The stack type for this network interface. To assign only
            IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6
            addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is
            used. This field can be both set at instance creation and
            update network interface operations. Check the StackType
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_stack_type``.
        subnetwork (str):
            The URL of the Subnetwork resource for this
            instance. If the network resource is in legacy
            mode, do not specify this field. If the network
            is in auto subnet mode, specifying the
            subnetwork is optional. If the network is in
            custom subnet mode, specifying the subnetwork is
            required. If you specify this field, you can
            specify the subnetwork as a full or partial URL.
            For example, the following are all valid URLs: -
            https://www.googleapis.com/compute/v1/projects/project/regions/region
            /subnetworks/subnetwork -
            regions/region/subnetworks/subnetwork

            This field is a member of `oneof`_ ``_subnetwork``.
        vlan (int):
            VLAN tag of a dynamic network interface, must
            be an integer in the range from 2 to 255
            inclusively.

            This field is a member of `oneof`_ ``_vlan``.
    """

    class IgmpQuery(proto.Enum):
        r"""Indicate whether igmp query is enabled on the network
        interface or not. If enabled, also indicates the version of IGMP
        supported.

        Values:
            UNDEFINED_IGMP_QUERY (0):
                A value indicating that the enum field is not
                set.
            IGMP_QUERY_DISABLED (28285169):
                The network interface has disabled IGMP
                query.
            IGMP_QUERY_V2 (333493457):
                The network interface has enabled IGMP query
                - v2.
        """
        UNDEFINED_IGMP_QUERY = 0
        IGMP_QUERY_DISABLED = 28285169
        IGMP_QUERY_V2 = 333493457

    class Ipv6AccessType(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_IPV6_ACCESS_TYPE (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL (35607499):
                This network interface can have external
                IPv6.
            INTERNAL (279295677):
                This network interface can have internal
                IPv6.
            UNSPECIFIED_IPV6_ACCESS_TYPE (313080613):
                No description available.
        """
        UNDEFINED_IPV6_ACCESS_TYPE = 0
        EXTERNAL = 35607499
        INTERNAL = 279295677
        UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613

    class NicType(proto.Enum):
        r"""The type of vNIC to be used on this interface. This may be
        gVNIC or VirtioNet.

        Values:
            UNDEFINED_NIC_TYPE (0):
                A value indicating that the enum field is not
                set.
            GVNIC (68209305):
                GVNIC
            IDPF (2242641):
                IDPF
            IRDMA (69927695):
                IRDMA
            MRDMA (73621779):
                MRDMA
            UNSPECIFIED_NIC_TYPE (67411801):
                No type specified.
            VIRTIO_NET (452123481):
                VIRTIO
        """
        UNDEFINED_NIC_TYPE = 0
        GVNIC = 68209305
        IDPF = 2242641
        IRDMA = 69927695
        MRDMA = 73621779
        UNSPECIFIED_NIC_TYPE = 67411801
        VIRTIO_NET = 452123481

    class StackType(proto.Enum):
        r"""The stack type for this network interface. To assign only IPv4
        addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses,
        use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can
        be both set at instance creation and update network interface
        operations.

        Values:
            UNDEFINED_STACK_TYPE (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                The network interface can have both IPv4 and
                IPv6 addresses.
            IPV4_ONLY (22373798):
                The network interface will only be assigned
                IPv4 addresses.
            IPV6_ONLY (79632100):
                The network interface will only be assigned
                IPv6 addresses.
            UNSPECIFIED_STACK_TYPE (298084569):
                No description available.
        """
        UNDEFINED_STACK_TYPE = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798
        IPV6_ONLY = 79632100
        UNSPECIFIED_STACK_TYPE = 298084569

    access_configs: MutableSequence["AccessConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=111058326,
        message="AccessConfig",
    )
    alias_ip_ranges: MutableSequence["AliasIpRange"] = proto.RepeatedField(
        proto.MESSAGE,
        number=165085631,
        message="AliasIpRange",
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    igmp_query: str = proto.Field(
        proto.STRING,
        number=30249546,
        optional=True,
    )
    internal_ipv6_prefix_length: int = proto.Field(
        proto.INT32,
        number=203833757,
        optional=True,
    )
    ipv6_access_configs: MutableSequence["AccessConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=483472110,
        message="AccessConfig",
    )
    ipv6_access_type: str = proto.Field(
        proto.STRING,
        number=504658653,
        optional=True,
    )
    ipv6_address: str = proto.Field(
        proto.STRING,
        number=341563804,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    network_attachment: str = proto.Field(
        proto.STRING,
        number=224644052,
        optional=True,
    )
    network_i_p: str = proto.Field(
        proto.STRING,
        number=207181961,
        optional=True,
    )
    nic_type: str = proto.Field(
        proto.STRING,
        number=59810577,
        optional=True,
    )
    parent_nic_name: str = proto.Field(
        proto.STRING,
        number=418764375,
        optional=True,
    )
    queue_count: int = proto.Field(
        proto.INT32,
        number=503708769,
        optional=True,
    )
    stack_type: str = proto.Field(
        proto.STRING,
        number=425908881,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )
    vlan: int = proto.Field(
        proto.INT32,
        number=3622243,
        optional=True,
    )


class NetworkList(proto.Message):
    r"""Contains a list of networks.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Network]):
            A list of Network resources.
        kind (str):
            [Output Only] Type of resource. Always compute#networkList
            for lists of networks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Network"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Network",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkParams(proto.Message):
    r"""Additional network parameters.

    Attributes:
        resource_manager_tags (MutableMapping[str, str]):
            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.
    """

    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )


class NetworkPeering(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_create_routes (bool):
            This field will be deprecated soon. Use the
            exchange_subnet_routes field instead. Indicates whether full
            mesh connectivity is created and managed automatically
            between peered networks. Currently this field should always
            be true since Google Compute Engine will automatically
            create and manage subnetwork routes between two networks
            when peering state is ACTIVE.

            This field is a member of `oneof`_ ``_auto_create_routes``.
        connection_status (google.cloud.compute_v1beta.types.NetworkPeeringConnectionStatus):
            [Output Only] The effective state of the peering connection
            as a whole.

            This field is a member of `oneof`_ ``_connection_status``.
        exchange_subnet_routes (bool):
            Indicates whether full mesh connectivity is
            created and managed automatically between peered
            networks. Currently this field should always be
            true since Google Compute Engine will
            automatically create and manage subnetwork
            routes between two networks when peering state
            is ACTIVE.

            This field is a member of `oneof`_ ``_exchange_subnet_routes``.
        export_custom_routes (bool):
            Whether to export the custom routes to peer
            network. The default value is false.

            This field is a member of `oneof`_ ``_export_custom_routes``.
        export_subnet_routes_with_public_ip (bool):
            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.

            This field is a member of `oneof`_ ``_export_subnet_routes_with_public_ip``.
        import_custom_routes (bool):
            Whether to import the custom routes from peer
            network. The default value is false.

            This field is a member of `oneof`_ ``_import_custom_routes``.
        import_subnet_routes_with_public_ip (bool):
            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.

            This field is a member of `oneof`_ ``_import_subnet_routes_with_public_ip``.
        name (str):
            Name of this peering. Provided by the client when the
            peering is created. The name must comply with RFC1035.
            Specifically, the name must be 1-63 characters long and
            match regular expression ``[a-z]([-a-z0-9]*[a-z0-9])?``. The
            first character must be a lowercase letter, and all the
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            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.

            This field is a member of `oneof`_ ``_network``.
        peer_mtu (int):
            [Output Only] Maximum Transmission Unit in bytes of the peer
            network.

            This field is a member of `oneof`_ ``_peer_mtu``.
        stack_type (str):
            Which IP version(s) of traffic and routes are allowed to be
            imported or exported between peer networks. The default
            value is IPV4_ONLY. Check the StackType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_stack_type``.
        state (str):
            [Output Only] State for the peering, either ``ACTIVE`` or
            ``INACTIVE``. The peering is ``ACTIVE`` when there's a
            matching configuration in the peer network. Check the State
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
        state_details (str):
            [Output Only] Details about the current state of the
            peering.

            This field is a member of `oneof`_ ``_state_details``.
        update_strategy (str):
            The update strategy determines the semantics
            for updates and deletes to the peering
            connection configuration. Check the
            UpdateStrategy enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_update_strategy``.
    """

    class StackType(proto.Enum):
        r"""Which IP version(s) of traffic and routes are allowed to be imported
        or exported between peer networks. The default value is IPV4_ONLY.

        Values:
            UNDEFINED_STACK_TYPE (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                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 (22373798):
                This Peering will only allow IPv4 traffic and routes to be
                exchanged, even if the matching peering is IPV4_IPV6.
        """
        UNDEFINED_STACK_TYPE = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798

    class State(proto.Enum):
        r"""[Output Only] State for the peering, either ``ACTIVE`` or
        ``INACTIVE``. The peering is ``ACTIVE`` when there's a matching
        configuration in the peer network.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                Matching configuration exists on the peer.
            INACTIVE (270421099):
                There is no matching configuration on the
                peer, including the case when peer does not
                exist.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        INACTIVE = 270421099

    class UpdateStrategy(proto.Enum):
        r"""The update strategy determines the semantics for updates and
        deletes to the peering connection configuration.

        Values:
            UNDEFINED_UPDATE_STRATEGY (0):
                A value indicating that the enum field is not
                set.
            CONSENSUS (203373655):
                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 (127011674):
                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 (526786327):
                Peerings with update strategy UNSPECIFIED are
                created with update strategy INDEPENDENT.
        """
        UNDEFINED_UPDATE_STRATEGY = 0
        CONSENSUS = 203373655
        INDEPENDENT = 127011674
        UNSPECIFIED = 526786327

    auto_create_routes: bool = proto.Field(
        proto.BOOL,
        number=57454941,
        optional=True,
    )
    connection_status: "NetworkPeeringConnectionStatus" = proto.Field(
        proto.MESSAGE,
        number=525629555,
        optional=True,
        message="NetworkPeeringConnectionStatus",
    )
    exchange_subnet_routes: bool = proto.Field(
        proto.BOOL,
        number=26322256,
        optional=True,
    )
    export_custom_routes: bool = proto.Field(
        proto.BOOL,
        number=60281485,
        optional=True,
    )
    export_subnet_routes_with_public_ip: bool = proto.Field(
        proto.BOOL,
        number=97940834,
        optional=True,
    )
    import_custom_routes: bool = proto.Field(
        proto.BOOL,
        number=197982398,
        optional=True,
    )
    import_subnet_routes_with_public_ip: bool = proto.Field(
        proto.BOOL,
        number=14419729,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    peer_mtu: int = proto.Field(
        proto.INT32,
        number=69584721,
        optional=True,
    )
    stack_type: str = proto.Field(
        proto.STRING,
        number=425908881,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    state_details: str = proto.Field(
        proto.STRING,
        number=95566996,
        optional=True,
    )
    update_strategy: str = proto.Field(
        proto.STRING,
        number=6123049,
        optional=True,
    )


class NetworkPeeringConnectionStatus(proto.Message):
    r"""[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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        consensus_state (google.cloud.compute_v1beta.types.NetworkPeeringConnectionStatusConsensusState):
            The consensus state contains information
            about the status of update and delete for a
            consensus peering connection.

            This field is a member of `oneof`_ ``_consensus_state``.
        traffic_configuration (google.cloud.compute_v1beta.types.NetworkPeeringConnectionStatusTrafficConfiguration):
            The active connectivity settings for the
            peering connection based on the settings of the
            network peerings.

            This field is a member of `oneof`_ ``_traffic_configuration``.
        update_strategy (str):
            The update strategy determines the
            update/delete semantics for this peering
            connection. Check the UpdateStrategy enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_update_strategy``.
    """

    class UpdateStrategy(proto.Enum):
        r"""The update strategy determines the update/delete semantics
        for this peering connection.

        Values:
            UNDEFINED_UPDATE_STRATEGY (0):
                A value indicating that the enum field is not
                set.
            CONSENSUS (203373655):
                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 (127011674):
                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 (526786327):
                Peerings with update strategy UNSPECIFIED are
                created with update strategy INDEPENDENT.
        """
        UNDEFINED_UPDATE_STRATEGY = 0
        CONSENSUS = 203373655
        INDEPENDENT = 127011674
        UNSPECIFIED = 526786327

    consensus_state: "NetworkPeeringConnectionStatusConsensusState" = proto.Field(
        proto.MESSAGE,
        number=379772617,
        optional=True,
        message="NetworkPeeringConnectionStatusConsensusState",
    )
    traffic_configuration: "NetworkPeeringConnectionStatusTrafficConfiguration" = (
        proto.Field(
            proto.MESSAGE,
            number=133016116,
            optional=True,
            message="NetworkPeeringConnectionStatusTrafficConfiguration",
        )
    )
    update_strategy: str = proto.Field(
        proto.STRING,
        number=6123049,
        optional=True,
    )


class NetworkPeeringConnectionStatusConsensusState(proto.Message):
    r"""The status of update/delete for a consensus peering connection. Only
    set when connection_status.update_strategy is CONSENSUS or a network
    peering is proposing to update the strategy to CONSENSUS.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        delete_status (str):
            The status of the delete request.
            Check the DeleteStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_delete_status``.
        update_status (str):
            The status of the update request.
            Check the UpdateStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_update_status``.
    """

    class DeleteStatus(proto.Enum):
        r"""The status of the delete request.

        Values:
            UNDEFINED_DELETE_STATUS (0):
                A value indicating that the enum field is not
                set.
            DELETE_ACKNOWLEDGED (325293916):
                Both network admins have agreed this
                consensus peering connection can be deleted.
            DELETE_STATUS_UNSPECIFIED (395396446):
                No description available.
            LOCAL_DELETE_REQUESTED (227335214):
                Network admin has requested deletion of this
                peering connection.
            PEER_DELETE_REQUESTED (197847799):
                The peer network admin has requested deletion
                of this peering connection.
        """
        UNDEFINED_DELETE_STATUS = 0
        DELETE_ACKNOWLEDGED = 325293916
        DELETE_STATUS_UNSPECIFIED = 395396446
        LOCAL_DELETE_REQUESTED = 227335214
        PEER_DELETE_REQUESTED = 197847799

    class UpdateStatus(proto.Enum):
        r"""The status of the update request.

        Values:
            UNDEFINED_UPDATE_STATUS (0):
                A value indicating that the enum field is not
                set.
            IN_SYNC (2273653):
                No pending configuration update proposals to
                the peering connection.
            PENDING_LOCAL_ACKNOWLEDMENT (229926592):
                The peer network admin has made an
                updatePeering call. The change is awaiting
                acknowledgment from this peering's network
                admin.
            PENDING_PEER_ACKNOWLEDGEMENT (420185797):
                The local network admin has made an
                updatePeering call. The change is awaiting
                acknowledgment from the peer network admin.
            UPDATE_STATUS_UNSPECIFIED (120836480):
                No description available.
        """
        UNDEFINED_UPDATE_STATUS = 0
        IN_SYNC = 2273653
        PENDING_LOCAL_ACKNOWLEDMENT = 229926592
        PENDING_PEER_ACKNOWLEDGEMENT = 420185797
        UPDATE_STATUS_UNSPECIFIED = 120836480

    delete_status: str = proto.Field(
        proto.STRING,
        number=483434758,
        optional=True,
    )
    update_status: str = proto.Field(
        proto.STRING,
        number=265998376,
        optional=True,
    )


class NetworkPeeringConnectionStatusTrafficConfiguration(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        export_custom_routes_to_peer (bool):
            Whether custom routes are being exported to
            the peer network.

            This field is a member of `oneof`_ ``_export_custom_routes_to_peer``.
        export_subnet_routes_with_public_ip_to_peer (bool):
            Whether subnet routes with public IP ranges
            are being exported to the peer network.

            This field is a member of `oneof`_ ``_export_subnet_routes_with_public_ip_to_peer``.
        import_custom_routes_from_peer (bool):
            Whether custom routes are being imported from
            the peer network.

            This field is a member of `oneof`_ ``_import_custom_routes_from_peer``.
        import_subnet_routes_with_public_ip_from_peer (bool):
            Whether subnet routes with public IP ranges
            are being imported from the peer network.

            This field is a member of `oneof`_ ``_import_subnet_routes_with_public_ip_from_peer``.
        stack_type (str):
            Which IP version(s) of traffic and routes are
            being imported or exported between peer
            networks. Check the StackType enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_stack_type``.
    """

    class StackType(proto.Enum):
        r"""Which IP version(s) of traffic and routes are being imported
        or exported between peer networks.

        Values:
            UNDEFINED_STACK_TYPE (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                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 (22373798):
                This Peering will only allow IPv4 traffic and routes to be
                exchanged, even if the matching peering is IPV4_IPV6.
        """
        UNDEFINED_STACK_TYPE = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798

    export_custom_routes_to_peer: bool = proto.Field(
        proto.BOOL,
        number=286428404,
        optional=True,
    )
    export_subnet_routes_with_public_ip_to_peer: bool = proto.Field(
        proto.BOOL,
        number=8358601,
        optional=True,
    )
    import_custom_routes_from_peer: bool = proto.Field(
        proto.BOOL,
        number=398584470,
        optional=True,
    )
    import_subnet_routes_with_public_ip_from_peer: bool = proto.Field(
        proto.BOOL,
        number=234712361,
        optional=True,
    )
    stack_type: str = proto.Field(
        proto.STRING,
        number=425908881,
        optional=True,
    )


class NetworkPerformanceConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        total_egress_bandwidth_tier (str):
            Check the TotalEgressBandwidthTier enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_total_egress_bandwidth_tier``.
    """

    class TotalEgressBandwidthTier(proto.Enum):
        r"""

        Values:
            UNDEFINED_TOTAL_EGRESS_BANDWIDTH_TIER (0):
                A value indicating that the enum field is not
                set.
            DEFAULT (115302945):
                No description available.
            TIER_1 (326919444):
                No description available.
        """
        UNDEFINED_TOTAL_EGRESS_BANDWIDTH_TIER = 0
        DEFAULT = 115302945
        TIER_1 = 326919444

    total_egress_bandwidth_tier: str = proto.Field(
        proto.STRING,
        number=130109439,
        optional=True,
    )


class NetworkProfile(proto.Message):
    r"""NetworkProfile represents a Google managed network profile
    resource.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            [Output Only] An optional description of this resource.

            This field is a member of `oneof`_ ``_description``.
        features (google.cloud.compute_v1beta.types.NetworkProfileNetworkFeatures):
            [Output Only] Features supported by the network.

            This field is a member of `oneof`_ ``_features``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#networkProfile for network profiles.

            This field is a member of `oneof`_ ``_kind``.
        location (google.cloud.compute_v1beta.types.NetworkProfileLocation):
            [Output Only] Location to which the network is restricted.

            This field is a member of `oneof`_ ``_location``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        zone (str):

            This field is a member of `oneof`_ ``_zone``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    features: "NetworkProfileNetworkFeatures" = proto.Field(
        proto.MESSAGE,
        number=246211645,
        optional=True,
        message="NetworkProfileNetworkFeatures",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    location: "NetworkProfileLocation" = proto.Field(
        proto.MESSAGE,
        number=290430901,
        optional=True,
        message="NetworkProfileLocation",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class NetworkProfileLocation(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):

            This field is a member of `oneof`_ ``_name``.
        scope (str):
            Check the Scope enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_scope``.
    """

    class Scope(proto.Enum):
        r"""

        Values:
            UNDEFINED_SCOPE (0):
                A value indicating that the enum field is not
                set.
            REGION (266017524):
                No description available.
            ZONE (2759596):
                No description available.
        """
        UNDEFINED_SCOPE = 0
        REGION = 266017524
        ZONE = 2759596

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    scope: str = proto.Field(
        proto.STRING,
        number=109264468,
        optional=True,
    )


class NetworkProfileNetworkFeatures(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address_purposes (MutableSequence[str]):
            Specifies what address purposes are
            supported. If empty, all address purposes are
            supported. Check the AddressPurposes enum for
            the list of possible values.
        allow_alias_ip_ranges (str):
            Specifies whether alias IP ranges (and
            secondary address ranges) are allowed. Check the
            AllowAliasIpRanges enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_allow_alias_ip_ranges``.
        allow_auto_mode_subnet (str):
            Specifies whether auto mode subnet creation
            is allowed. Check the AllowAutoModeSubnet enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_allow_auto_mode_subnet``.
        allow_class_d_firewalls (str):
            Specifies whether firewalls for Class D
            address ranges are supported. Check the
            AllowClassDFirewalls enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_allow_class_d_firewalls``.
        allow_cloud_nat (str):
            Specifies whether cloud NAT creation is
            allowed. Check the AllowCloudNat enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_allow_cloud_nat``.
        allow_cloud_router (str):
            Specifies whether cloud router creation is
            allowed. Check the AllowCloudRouter enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_allow_cloud_router``.
        allow_default_nic_attachment (str):
            Specifies whether default NIC attachment is
            allowed. Check the AllowDefaultNicAttachment
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_allow_default_nic_attachment``.
        allow_external_ip_access (str):
            Specifies whether VMs are allowed to have
            external IP access on network interfaces
            connected to this VPC. Check the
            AllowExternalIpAccess enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_allow_external_ip_access``.
        allow_interconnect (str):
            Specifies whether Cloud Interconnect creation
            is allowed. Check the AllowInterconnect enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_allow_interconnect``.
        allow_ip_forwarding (str):
            Specifies whether IP forwarding is allowed.
            Check the AllowIpForwarding enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_allow_ip_forwarding``.
        allow_load_balancing (str):
            Specifies whether cloud load balancing is
            allowed. Check the AllowLoadBalancing enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_allow_load_balancing``.
        allow_multi_nic_in_same_network (str):
            Specifies whether multi-nic in the same
            network is allowed. Check the
            AllowMultiNicInSameNetwork enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_allow_multi_nic_in_same_network``.
        allow_ncc (str):
            Specifies whether NCC is allowed.
            Check the AllowNcc enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_allow_ncc``.
        allow_network_migration (str):
            Specifies whether VM network migration is
            allowed. Check the AllowNetworkMigration enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_allow_network_migration``.
        allow_packet_mirroring (str):
            Specifies whether Packet Mirroring 1.0 is
            supported. Check the AllowPacketMirroring enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_allow_packet_mirroring``.
        allow_private_google_access (str):
            Specifies whether private Google access is
            allowed. Check the AllowPrivateGoogleAccess enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_allow_private_google_access``.
        allow_psc (str):
            Specifies whether PSC creation is allowed.
            Check the AllowPsc enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_allow_psc``.
        allow_same_network_unicast (str):
            Specifies whether unicast within the same
            network is allowed. Check the
            AllowSameNetworkUnicast enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_allow_same_network_unicast``.
        allow_static_routes (str):
            Specifies whether static route creation is
            allowed. Check the AllowStaticRoutes enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_allow_static_routes``.
        allow_sub_interfaces (str):
            Specifies whether sub interfaces are allowed.
            Check the AllowSubInterfaces enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_allow_sub_interfaces``.
        allow_vpc_peering (str):
            Specifies whether VPC peering is allowed.
            Check the AllowVpcPeering enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_allow_vpc_peering``.
        allow_vpn (str):
            Specifies whether VPN creation is allowed.
            Check the AllowVpn enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_allow_vpn``.
        interface_types (MutableSequence[str]):
            If set, limits the interface types that the
            network supports. If empty, all interface types
            are supported. Check the InterfaceTypes enum for
            the list of possible values.
        subnet_purposes (MutableSequence[str]):
            Specifies which subnetwork purposes are
            supported. Check the SubnetPurposes enum for the
            list of possible values.
        subnet_stack_types (MutableSequence[str]):
            Specifies which subnetwork stack types are
            supported. Check the SubnetStackTypes enum for
            the list of possible values.
        subnetwork_purposes (MutableSequence[str]):
            Specifies which subnetwork purposes are
            supported. Check the SubnetworkPurposes enum for
            the list of possible values.
        subnetwork_stack_types (MutableSequence[str]):
            Specifies which subnetwork stack types are
            supported. Check the SubnetworkStackTypes enum
            for the list of possible values.
        unicast (str):
            Specifies which type of unicast is supported.
            Check the Unicast enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_unicast``.
    """

    class AddressPurposes(proto.Enum):
        r"""Additional supported values which may be not listed in the enum
        directly due to technical reasons: PRIVATE_SERVICE_CONNECT

        Values:
            UNDEFINED_ADDRESS_PURPOSES (0):
                A value indicating that the enum field is not
                set.
            DNS_RESOLVER (476114556):
                DNS resolver address in the subnetwork.
            GCE_ENDPOINT (230515243):
                VM internal/alias IP, Internal LB service IP,
                etc.
            IPSEC_INTERCONNECT (340437251):
                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 (163666477):
                External IP automatically reserved for Cloud
                NAT.
            PRIVATE_SERVICE_CONNECT (48134724):
                No description available.
            SERVERLESS (270492508):
                A regional internal IP address range reserved
                for Serverless.
            SHARED_LOADBALANCER_VIP (294447572):
                A private network IP address that can be
                shared by multiple Internal Load Balancer
                forwarding rules.
            VPC_PEERING (400800170):
                IP range for peer networks.
        """
        UNDEFINED_ADDRESS_PURPOSES = 0
        DNS_RESOLVER = 476114556
        GCE_ENDPOINT = 230515243
        IPSEC_INTERCONNECT = 340437251
        NAT_AUTO = 163666477
        PRIVATE_SERVICE_CONNECT = 48134724
        SERVERLESS = 270492508
        SHARED_LOADBALANCER_VIP = 294447572
        VPC_PEERING = 400800170

    class AllowAliasIpRanges(proto.Enum):
        r"""Specifies whether alias IP ranges (and secondary address
        ranges) are allowed.

        Values:
            UNDEFINED_ALLOW_ALIAS_IP_RANGES (0):
                A value indicating that the enum field is not
                set.
            ALIAS_IP_RANGES_ALLOWED (464867048):
                No description available.
            ALIAS_IP_RANGES_BLOCKED (281030444):
                No description available.
        """
        UNDEFINED_ALLOW_ALIAS_IP_RANGES = 0
        ALIAS_IP_RANGES_ALLOWED = 464867048
        ALIAS_IP_RANGES_BLOCKED = 281030444

    class AllowAutoModeSubnet(proto.Enum):
        r"""Specifies whether auto mode subnet creation is allowed.

        Values:
            UNDEFINED_ALLOW_AUTO_MODE_SUBNET (0):
                A value indicating that the enum field is not
                set.
            AUTO_MODE_SUBNET_ALLOWED (391042610):
                No description available.
            AUTO_MODE_SUBNET_BLOCKED (207206006):
                No description available.
        """
        UNDEFINED_ALLOW_AUTO_MODE_SUBNET = 0
        AUTO_MODE_SUBNET_ALLOWED = 391042610
        AUTO_MODE_SUBNET_BLOCKED = 207206006

    class AllowClassDFirewalls(proto.Enum):
        r"""Specifies whether firewalls for Class D address ranges are
        supported.

        Values:
            UNDEFINED_ALLOW_CLASS_D_FIREWALLS (0):
                A value indicating that the enum field is not
                set.
            CLASS_D_FIREWALLS_ALLOWED (348219386):
                No description available.
            CLASS_D_FIREWALLS_BLOCKED (164382782):
                No description available.
        """
        UNDEFINED_ALLOW_CLASS_D_FIREWALLS = 0
        CLASS_D_FIREWALLS_ALLOWED = 348219386
        CLASS_D_FIREWALLS_BLOCKED = 164382782

    class AllowCloudNat(proto.Enum):
        r"""Specifies whether cloud NAT creation is allowed.

        Values:
            UNDEFINED_ALLOW_CLOUD_NAT (0):
                A value indicating that the enum field is not
                set.
            CLOUD_NAT_ALLOWED (245931296):
                No description available.
            CLOUD_NAT_BLOCKED (62094692):
                No description available.
        """
        UNDEFINED_ALLOW_CLOUD_NAT = 0
        CLOUD_NAT_ALLOWED = 245931296
        CLOUD_NAT_BLOCKED = 62094692

    class AllowCloudRouter(proto.Enum):
        r"""Specifies whether cloud router creation is allowed.

        Values:
            UNDEFINED_ALLOW_CLOUD_ROUTER (0):
                A value indicating that the enum field is not
                set.
            CLOUD_ROUTER_ALLOWED (365388284):
                No description available.
            CLOUD_ROUTER_BLOCKED (181551680):
                No description available.
        """
        UNDEFINED_ALLOW_CLOUD_ROUTER = 0
        CLOUD_ROUTER_ALLOWED = 365388284
        CLOUD_ROUTER_BLOCKED = 181551680

    class AllowDefaultNicAttachment(proto.Enum):
        r"""Specifies whether default NIC attachment is allowed.

        Values:
            UNDEFINED_ALLOW_DEFAULT_NIC_ATTACHMENT (0):
                A value indicating that the enum field is not
                set.
            DEFAULT_NIC_ATTACHMENT_ALLOWED (11570689):
                No description available.
            DEFAULT_NIC_ATTACHMENT_BLOCKED (364604997):
                No description available.
        """
        UNDEFINED_ALLOW_DEFAULT_NIC_ATTACHMENT = 0
        DEFAULT_NIC_ATTACHMENT_ALLOWED = 11570689
        DEFAULT_NIC_ATTACHMENT_BLOCKED = 364604997

    class AllowExternalIpAccess(proto.Enum):
        r"""Specifies whether VMs are allowed to have external IP access
        on network interfaces connected to this VPC.

        Values:
            UNDEFINED_ALLOW_EXTERNAL_IP_ACCESS (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL_IP_ACCESS_ALLOWED (109530193):
                No description available.
            EXTERNAL_IP_ACCESS_BLOCKED (462564501):
                No description available.
        """
        UNDEFINED_ALLOW_EXTERNAL_IP_ACCESS = 0
        EXTERNAL_IP_ACCESS_ALLOWED = 109530193
        EXTERNAL_IP_ACCESS_BLOCKED = 462564501

    class AllowInterconnect(proto.Enum):
        r"""Specifies whether Cloud Interconnect creation is allowed.

        Values:
            UNDEFINED_ALLOW_INTERCONNECT (0):
                A value indicating that the enum field is not
                set.
            INTERCONNECT_ALLOWED (162845399):
                No description available.
            INTERCONNECT_BLOCKED (515879707):
                No description available.
        """
        UNDEFINED_ALLOW_INTERCONNECT = 0
        INTERCONNECT_ALLOWED = 162845399
        INTERCONNECT_BLOCKED = 515879707

    class AllowIpForwarding(proto.Enum):
        r"""Specifies whether IP forwarding is allowed.

        Values:
            UNDEFINED_ALLOW_IP_FORWARDING (0):
                A value indicating that the enum field is not
                set.
            IP_FORWARDING_ALLOWED (152595550):
                No description available.
            IP_FORWARDING_BLOCKED (505629858):
                No description available.
        """
        UNDEFINED_ALLOW_IP_FORWARDING = 0
        IP_FORWARDING_ALLOWED = 152595550
        IP_FORWARDING_BLOCKED = 505629858

    class AllowLoadBalancing(proto.Enum):
        r"""Specifies whether cloud load balancing is allowed.

        Values:
            UNDEFINED_ALLOW_LOAD_BALANCING (0):
                A value indicating that the enum field is not
                set.
            LOAD_BALANCING_ALLOWED (28407977):
                No description available.
            LOAD_BALANCING_BLOCKED (381442285):
                No description available.
        """
        UNDEFINED_ALLOW_LOAD_BALANCING = 0
        LOAD_BALANCING_ALLOWED = 28407977
        LOAD_BALANCING_BLOCKED = 381442285

    class AllowMultiNicInSameNetwork(proto.Enum):
        r"""Specifies whether multi-nic in the same network is allowed.

        Values:
            UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_NETWORK (0):
                A value indicating that the enum field is not
                set.
            MULTI_NIC_IN_SAME_NETWORK_ALLOWED (457555419):
                No description available.
            MULTI_NIC_IN_SAME_NETWORK_BLOCKED (273718815):
                No description available.
        """
        UNDEFINED_ALLOW_MULTI_NIC_IN_SAME_NETWORK = 0
        MULTI_NIC_IN_SAME_NETWORK_ALLOWED = 457555419
        MULTI_NIC_IN_SAME_NETWORK_BLOCKED = 273718815

    class AllowNcc(proto.Enum):
        r"""Specifies whether NCC is allowed.

        Values:
            UNDEFINED_ALLOW_NCC (0):
                A value indicating that the enum field is not
                set.
            NCC_ALLOWED (467227511):
                No description available.
            NCC_BLOCKED (283390907):
                No description available.
        """
        UNDEFINED_ALLOW_NCC = 0
        NCC_ALLOWED = 467227511
        NCC_BLOCKED = 283390907

    class AllowNetworkMigration(proto.Enum):
        r"""Specifies whether VM network migration is allowed.

        Values:
            UNDEFINED_ALLOW_NETWORK_MIGRATION (0):
                A value indicating that the enum field is not
                set.
            NETWORK_MIGRATION_ALLOWED (14389766):
                No description available.
            NETWORK_MIGRATION_BLOCKED (367424074):
                No description available.
        """
        UNDEFINED_ALLOW_NETWORK_MIGRATION = 0
        NETWORK_MIGRATION_ALLOWED = 14389766
        NETWORK_MIGRATION_BLOCKED = 367424074

    class AllowPacketMirroring(proto.Enum):
        r"""Specifies whether Packet Mirroring 1.0 is supported.

        Values:
            UNDEFINED_ALLOW_PACKET_MIRRORING (0):
                A value indicating that the enum field is not
                set.
            PACKET_MIRRORING_ALLOWED (92416245):
                No description available.
            PACKET_MIRRORING_BLOCKED (445450553):
                No description available.
        """
        UNDEFINED_ALLOW_PACKET_MIRRORING = 0
        PACKET_MIRRORING_ALLOWED = 92416245
        PACKET_MIRRORING_BLOCKED = 445450553

    class AllowPrivateGoogleAccess(proto.Enum):
        r"""Specifies whether private Google access is allowed.

        Values:
            UNDEFINED_ALLOW_PRIVATE_GOOGLE_ACCESS (0):
                A value indicating that the enum field is not
                set.
            PRIVATE_GOOGLE_ACCESS_ALLOWED (220787351):
                No description available.
            PRIVATE_GOOGLE_ACCESS_BLOCKED (36950747):
                No description available.
        """
        UNDEFINED_ALLOW_PRIVATE_GOOGLE_ACCESS = 0
        PRIVATE_GOOGLE_ACCESS_ALLOWED = 220787351
        PRIVATE_GOOGLE_ACCESS_BLOCKED = 36950747

    class AllowPsc(proto.Enum):
        r"""Specifies whether PSC creation is allowed.

        Values:
            UNDEFINED_ALLOW_PSC (0):
                A value indicating that the enum field is not
                set.
            PSC_ALLOWED (171559657):
                No description available.
            PSC_BLOCKED (524593965):
                No description available.
        """
        UNDEFINED_ALLOW_PSC = 0
        PSC_ALLOWED = 171559657
        PSC_BLOCKED = 524593965

    class AllowSameNetworkUnicast(proto.Enum):
        r"""Specifies whether unicast within the same network is allowed.

        Values:
            UNDEFINED_ALLOW_SAME_NETWORK_UNICAST (0):
                A value indicating that the enum field is not
                set.
            SAME_NETWORK_UNICAST_ALLOWED (159732814):
                No description available.
            SAME_NETWORK_UNICAST_BLOCKED (512767122):
                No description available.
        """
        UNDEFINED_ALLOW_SAME_NETWORK_UNICAST = 0
        SAME_NETWORK_UNICAST_ALLOWED = 159732814
        SAME_NETWORK_UNICAST_BLOCKED = 512767122

    class AllowStaticRoutes(proto.Enum):
        r"""Specifies whether static route creation is allowed.

        Values:
            UNDEFINED_ALLOW_STATIC_ROUTES (0):
                A value indicating that the enum field is not
                set.
            STATIC_ROUTES_ALLOWED (409048964):
                No description available.
            STATIC_ROUTES_BLOCKED (225212360):
                No description available.
        """
        UNDEFINED_ALLOW_STATIC_ROUTES = 0
        STATIC_ROUTES_ALLOWED = 409048964
        STATIC_ROUTES_BLOCKED = 225212360

    class AllowSubInterfaces(proto.Enum):
        r"""Specifies whether sub interfaces are allowed.

        Values:
            UNDEFINED_ALLOW_SUB_INTERFACES (0):
                A value indicating that the enum field is not
                set.
            SUBINTERFACES_ALLOWED (158685891):
                No description available.
            SUBINTERFACES_BLOCKED (511720199):
                No description available.
        """
        UNDEFINED_ALLOW_SUB_INTERFACES = 0
        SUBINTERFACES_ALLOWED = 158685891
        SUBINTERFACES_BLOCKED = 511720199

    class AllowVpcPeering(proto.Enum):
        r"""Specifies whether VPC peering is allowed.

        Values:
            UNDEFINED_ALLOW_VPC_PEERING (0):
                A value indicating that the enum field is not
                set.
            VPC_PEERING_ALLOWED (261465075):
                No description available.
            VPC_PEERING_BLOCKED (77628471):
                No description available.
        """
        UNDEFINED_ALLOW_VPC_PEERING = 0
        VPC_PEERING_ALLOWED = 261465075
        VPC_PEERING_BLOCKED = 77628471

    class AllowVpn(proto.Enum):
        r"""Specifies whether VPN creation is allowed.

        Values:
            UNDEFINED_ALLOW_VPN (0):
                A value indicating that the enum field is not
                set.
            VPN_ALLOWED (162163997):
                No description available.
            VPN_BLOCKED (515198305):
                No description available.
        """
        UNDEFINED_ALLOW_VPN = 0
        VPN_ALLOWED = 162163997
        VPN_BLOCKED = 515198305

    class InterfaceTypes(proto.Enum):
        r"""

        Values:
            UNDEFINED_INTERFACE_TYPES (0):
                A value indicating that the enum field is not
                set.
            GVNIC (68209305):
                GVNIC
            IDPF (2242641):
                IDPF
            IRDMA (69927695):
                IRDMA
            MRDMA (73621779):
                MRDMA
            UNSPECIFIED_NIC_TYPE (67411801):
                No type specified.
            VIRTIO_NET (452123481):
                VIRTIO
        """
        UNDEFINED_INTERFACE_TYPES = 0
        GVNIC = 68209305
        IDPF = 2242641
        IRDMA = 69927695
        MRDMA = 73621779
        UNSPECIFIED_NIC_TYPE = 67411801
        VIRTIO_NET = 452123481

    class SubnetPurposes(proto.Enum):
        r"""

        Values:
            UNDEFINED_SUBNET_PURPOSES (0):
                A value indicating that the enum field is not
                set.
            SUBNET_PURPOSE_CUSTOM_HARDWARE (283160275):
                No description available.
            SUBNET_PURPOSE_PRIVATE (404371008):
                No description available.
        """
        UNDEFINED_SUBNET_PURPOSES = 0
        SUBNET_PURPOSE_CUSTOM_HARDWARE = 283160275
        SUBNET_PURPOSE_PRIVATE = 404371008

    class SubnetStackTypes(proto.Enum):
        r"""

        Values:
            UNDEFINED_SUBNET_STACK_TYPES (0):
                A value indicating that the enum field is not
                set.
            SUBNET_STACK_TYPE_IPV4_IPV6 (41454485):
                No description available.
            SUBNET_STACK_TYPE_IPV4_ONLY (41631034):
                No description available.
            SUBNET_STACK_TYPE_IPV6_ONLY (98889336):
                No description available.
        """
        UNDEFINED_SUBNET_STACK_TYPES = 0
        SUBNET_STACK_TYPE_IPV4_IPV6 = 41454485
        SUBNET_STACK_TYPE_IPV4_ONLY = 41631034
        SUBNET_STACK_TYPE_IPV6_ONLY = 98889336

    class SubnetworkPurposes(proto.Enum):
        r"""Additional supported values which may be not listed in the enum
        directly due to technical reasons: PRIVATE_SERVICE_CONNECT

        Values:
            UNDEFINED_SUBNETWORK_PURPOSES (0):
                A value indicating that the enum field is not
                set.
            GLOBAL_MANAGED_PROXY (236463602):
                Subnet reserved for Global Envoy-based Load
                Balancing.
            INTERNAL_HTTPS_LOAD_BALANCER (248748889):
                Subnet reserved for Internal HTTP(S) Load Balancing. This is
                a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.
            PEER_MIGRATION (491902225):
                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 (403485027):
                Regular user created or automatically created
                subnet.
            PRIVATE_NAT (367764517):
                Subnetwork used as source range for Private
                NAT Gateways.
            PRIVATE_RFC_1918 (254902107):
                Regular user created or automatically created
                subnet.
            REGIONAL_MANAGED_PROXY (153049966):
                Subnetwork used for Regional Envoy-based Load
                Balancing.
        """
        UNDEFINED_SUBNETWORK_PURPOSES = 0
        GLOBAL_MANAGED_PROXY = 236463602
        INTERNAL_HTTPS_LOAD_BALANCER = 248748889
        PEER_MIGRATION = 491902225
        PRIVATE = 403485027
        PRIVATE_NAT = 367764517
        PRIVATE_RFC_1918 = 254902107
        REGIONAL_MANAGED_PROXY = 153049966

    class SubnetworkStackTypes(proto.Enum):
        r"""

        Values:
            UNDEFINED_SUBNETWORK_STACK_TYPES (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                New VMs in this subnet can have both IPv4 and
                IPv6 addresses.
            IPV4_ONLY (22373798):
                New VMs in this subnet will only be assigned
                IPv4 addresses.
            IPV6_ONLY (79632100):
                New VMs in this subnet will only be assigned
                IPv6 addresses.
        """
        UNDEFINED_SUBNETWORK_STACK_TYPES = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798
        IPV6_ONLY = 79632100

    class Unicast(proto.Enum):
        r"""Specifies which type of unicast is supported.

        Values:
            UNDEFINED_UNICAST (0):
                A value indicating that the enum field is not
                set.
            UNICAST_SDN (379954157):
                No description available.
            UNICAST_ULL (379956325):
                No description available.
        """
        UNDEFINED_UNICAST = 0
        UNICAST_SDN = 379954157
        UNICAST_ULL = 379956325

    address_purposes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=433024768,
    )
    allow_alias_ip_ranges: str = proto.Field(
        proto.STRING,
        number=457984201,
        optional=True,
    )
    allow_auto_mode_subnet: str = proto.Field(
        proto.STRING,
        number=152191263,
        optional=True,
    )
    allow_class_d_firewalls: str = proto.Field(
        proto.STRING,
        number=131608987,
        optional=True,
    )
    allow_cloud_nat: str = proto.Field(
        proto.STRING,
        number=254831265,
        optional=True,
    )
    allow_cloud_router: str = proto.Field(
        proto.STRING,
        number=451110345,
        optional=True,
    )
    allow_default_nic_attachment: str = proto.Field(
        proto.STRING,
        number=53917486,
        optional=True,
    )
    allow_external_ip_access: str = proto.Field(
        proto.STRING,
        number=131538110,
        optional=True,
    )
    allow_interconnect: str = proto.Field(
        proto.STRING,
        number=280512964,
        optional=True,
    )
    allow_ip_forwarding: str = proto.Field(
        proto.STRING,
        number=500838047,
        optional=True,
    )
    allow_load_balancing: str = proto.Field(
        proto.STRING,
        number=223366198,
        optional=True,
    )
    allow_multi_nic_in_same_network: str = proto.Field(
        proto.STRING,
        number=88251004,
        optional=True,
    )
    allow_ncc: str = proto.Field(
        proto.STRING,
        number=372354904,
        optional=True,
    )
    allow_network_migration: str = proto.Field(
        proto.STRING,
        number=239588231,
        optional=True,
    )
    allow_packet_mirroring: str = proto.Field(
        proto.STRING,
        number=512227074,
        optional=True,
    )
    allow_private_google_access: str = proto.Field(
        proto.STRING,
        number=374702072,
        optional=True,
    )
    allow_psc: str = proto.Field(
        proto.STRING,
        number=372357322,
        optional=True,
    )
    allow_same_network_unicast: str = proto.Field(
        proto.STRING,
        number=167531643,
        optional=True,
    )
    allow_static_routes: str = proto.Field(
        proto.STRING,
        number=185257925,
        optional=True,
    )
    allow_sub_interfaces: str = proto.Field(
        proto.STRING,
        number=247208303,
        optional=True,
    )
    allow_vpc_peering: str = proto.Field(
        proto.STRING,
        number=115402228,
        optional=True,
    )
    allow_vpn: str = proto.Field(
        proto.STRING,
        number=372363006,
        optional=True,
    )
    interface_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=157981171,
    )
    subnet_purposes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=301338039,
    )
    subnet_stack_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=521008672,
    )
    subnetwork_purposes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=528240710,
    )
    subnetwork_stack_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=436827441,
    )
    unicast: str = proto.Field(
        proto.STRING,
        number=249841711,
        optional=True,
    )


class NetworkProfilesListResponse(proto.Message):
    r"""Contains a list of network profiles.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NetworkProfile]):
            A list of NetworkProfile resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#networkProfileList for network profiles.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NetworkProfile"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NetworkProfile",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NetworkRoutingConfig(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bgp_always_compare_med (bool):
            Enable comparison of Multi-Exit
            Discriminators (MED) across routes with
            different neighbor ASNs when using the STANDARD
            BGP best path selection algorithm.

            This field is a member of `oneof`_ ``_bgp_always_compare_med``.
        bgp_best_path_selection_mode (str):
            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. Check the
            BgpBestPathSelectionMode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_bgp_best_path_selection_mode``.
        bgp_inter_region_cost (str):
            Allows to define a preferred approach for handling
            inter-region cost in the selection process when using the
            STANDARD BGP best path selection algorithm. Can be DEFAULT
            or ADD_COST_TO_MED. Check the BgpInterRegionCost enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_bgp_inter_region_cost``.
        effective_bgp_always_compare_med (bool):
            [Output Only] Effective value of the bgp_always_compare_med
            field.

            This field is a member of `oneof`_ ``_effective_bgp_always_compare_med``.
        effective_bgp_inter_region_cost (str):
            [Output Only] Effective value of the bgp_inter_region_cost
            field. Check the EffectiveBgpInterRegionCost enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_effective_bgp_inter_region_cost``.
        routing_mode (str):
            The network-wide routing mode to use. If set
            to REGIONAL, this network's Cloud Routers will
            only advertise routes with subnets of this
            network in the same region as the router. If set
            to GLOBAL, this network's Cloud Routers will
            advertise routes with all subnets of this
            network, across regions. Check the RoutingMode
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_routing_mode``.
    """

    class BgpBestPathSelectionMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_BGP_BEST_PATH_SELECTION_MODE (0):
                A value indicating that the enum field is not
                set.
            LEGACY (94234569):
                No description available.
            STANDARD (484642493):
                No description available.
        """
        UNDEFINED_BGP_BEST_PATH_SELECTION_MODE = 0
        LEGACY = 94234569
        STANDARD = 484642493

    class BgpInterRegionCost(proto.Enum):
        r"""Allows to define a preferred approach for handling inter-region cost
        in the selection process when using the STANDARD BGP best path
        selection algorithm. Can be DEFAULT or ADD_COST_TO_MED. Additional
        supported values which may be not listed in the enum directly due to
        technical reasons: ADD_COST_TO_MED DEFAULT

        Values:
            UNDEFINED_BGP_INTER_REGION_COST (0):
                A value indicating that the enum field is not
                set.
            ADD_COST_TO_MED (490583004):
                No description available.
            DEFAULT (115302945):
                No description available.
        """
        UNDEFINED_BGP_INTER_REGION_COST = 0
        ADD_COST_TO_MED = 490583004
        DEFAULT = 115302945

    class EffectiveBgpInterRegionCost(proto.Enum):
        r"""[Output Only] Effective value of the bgp_inter_region_cost field.
        Additional supported values which may be not listed in the enum
        directly due to technical reasons: ADD_COST_TO_MED DEFAULT

        Values:
            UNDEFINED_EFFECTIVE_BGP_INTER_REGION_COST (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_EFFECTIVE_BGP_INTER_REGION_COST = 0

    class RoutingMode(proto.Enum):
        r"""The network-wide routing mode to use. If set to REGIONAL,
        this network's Cloud Routers will only advertise routes with
        subnets of this network in the same region as the router. If set
        to GLOBAL, this network's Cloud Routers will advertise routes
        with all subnets of this network, across regions.

        Values:
            UNDEFINED_ROUTING_MODE (0):
                A value indicating that the enum field is not
                set.
            GLOBAL (494663587):
                No description available.
            REGIONAL (92288543):
                No description available.
        """
        UNDEFINED_ROUTING_MODE = 0
        GLOBAL = 494663587
        REGIONAL = 92288543

    bgp_always_compare_med: bool = proto.Field(
        proto.BOOL,
        number=213102902,
        optional=True,
    )
    bgp_best_path_selection_mode: str = proto.Field(
        proto.STRING,
        number=317816297,
        optional=True,
    )
    bgp_inter_region_cost: str = proto.Field(
        proto.STRING,
        number=462142689,
        optional=True,
    )
    effective_bgp_always_compare_med: bool = proto.Field(
        proto.BOOL,
        number=214661838,
        optional=True,
    )
    effective_bgp_inter_region_cost: str = proto.Field(
        proto.STRING,
        number=185098313,
        optional=True,
    )
    routing_mode: str = proto.Field(
        proto.STRING,
        number=475143548,
        optional=True,
    )


class NetworksAddPeeringRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_create_routes (bool):
            This field will be deprecated soon. Use
            exchange_subnet_routes in network_peering instead. Indicates
            whether full mesh connectivity is created and managed
            automatically between peered networks. Currently this field
            should always be true since Google Compute Engine will
            automatically create and manage subnetwork routes between
            two networks when peering state is ACTIVE.

            This field is a member of `oneof`_ ``_auto_create_routes``.
        name (str):
            Name of the peering, which should conform to
            RFC1035.

            This field is a member of `oneof`_ ``_name``.
        network_peering (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_network_peering``.
        peer_network (str):
            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.

            This field is a member of `oneof`_ ``_peer_network``.
    """

    auto_create_routes: bool = proto.Field(
        proto.BOOL,
        number=57454941,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network_peering: "NetworkPeering" = proto.Field(
        proto.MESSAGE,
        number=328926767,
        optional=True,
        message="NetworkPeering",
    )
    peer_network: str = proto.Field(
        proto.STRING,
        number=500625489,
        optional=True,
    )


class NetworksGetEffectiveFirewallsResponse(proto.Message):
    r"""

    Attributes:
        firewall_policys (MutableSequence[google.cloud.compute_v1beta.types.NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy]):
            [Output Only] Effective firewalls from firewall policy. It
            returns Global Network Firewall Policies and Hierarchical
            Firewall Policies. Use
            regionNetworkFirewallPolicies.getEffectiveFirewalls to get
            Regional Network Firewall Policies as well.
        firewalls (MutableSequence[google.cloud.compute_v1beta.types.Firewall]):
            Effective firewalls on the network.
        organization_firewalls (MutableSequence[google.cloud.compute_v1beta.types.NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy]):
            Effective firewalls from organization
            policies.
    """

    firewall_policys: MutableSequence[
        "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=410985794,
        message="NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
    )
    firewalls: MutableSequence["Firewall"] = proto.RepeatedField(
        proto.MESSAGE,
        number=272245619,
        message="Firewall",
    )
    organization_firewalls: MutableSequence[
        "NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=466315111,
        message="NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy",
    )


class NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        display_name (str):
            [Output Only] Deprecated, please use short name instead. The
            display name of the firewall policy.

            This field is a member of `oneof`_ ``_display_name``.
        name (str):
            [Output Only] The name of the firewall policy.

            This field is a member of `oneof`_ ``_name``.
        packet_mirroring_rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            [Output Only] The packet mirroring rules that apply to the
            network.
        priority (int):
            [Output only] Priority of firewall policy association. Not
            applicable for type=HIERARCHY.

            This field is a member of `oneof`_ ``_priority``.
        rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            [Output Only] The rules that apply to the network.
        short_name (str):
            [Output Only] The short name of the firewall policy.

            This field is a member of `oneof`_ ``_short_name``.
        type_ (str):
            [Output Only] The type of the firewall policy. Check the
            Type enum for the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""[Output Only] The type of the firewall policy.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            HIERARCHY (69902869):
                No description available.
            NETWORK (413984270):
                No description available.
            SYSTEM (313484847):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_TYPE = 0
        HIERARCHY = 69902869
        NETWORK = 413984270
        SYSTEM = 313484847
        UNSPECIFIED = 526786327

    display_name: str = proto.Field(
        proto.STRING,
        number=4473832,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=531644356,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="FirewallPolicyRule",
    )
    short_name: str = proto.Field(
        proto.STRING,
        number=492051566,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy(proto.Message):
    r"""A pruned SecurityPolicy containing ID and any applicable
    firewall rules.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (int):
            [Output Only] The unique identifier for the security policy.
            This identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        rules (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRule]):
            The rules that apply to the network.
    """

    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    rules: MutableSequence["SecurityPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="SecurityPolicyRule",
    )


class NetworksRemovePeeringRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of the peering, which should conform to
            RFC1035.

            This field is a member of `oneof`_ ``_name``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class NetworksRequestRemovePeeringRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of the peering, which should conform to
            RFC1035.

            This field is a member of `oneof`_ ``_name``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class NetworksUpdatePeeringRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_peering (google.cloud.compute_v1beta.types.NetworkPeering):

            This field is a member of `oneof`_ ``_network_peering``.
    """

    network_peering: "NetworkPeering" = proto.Field(
        proto.MESSAGE,
        number=328926767,
        optional=True,
        message="NetworkPeering",
    )


class NodeGroup(proto.Message):
    r"""Represents a sole-tenant Node Group resource. A sole-tenant
    node is a physical server that is dedicated to hosting VM
    instances only for your specific project. Use sole-tenant nodes
    to keep your instances physically separated from instances in
    other projects, or to group your instances together on the same
    host hardware. For more information, read Sole-tenant nodes.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaling_policy (google.cloud.compute_v1beta.types.NodeGroupAutoscalingPolicy):
            Specifies how autoscaling should behave.

            This field is a member of `oneof`_ ``_autoscaling_policy``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] The type of the resource. Always
            compute#nodeGroup for node group.

            This field is a member of `oneof`_ ``_kind``.
        location_hint (str):
            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.

            This field is a member of `oneof`_ ``_location_hint``.
        maintenance_interval (str):
            Specifies the frequency of planned maintenance events. The
            accepted values are: ``AS_NEEDED`` and ``RECURRENT``. Check
            the MaintenanceInterval enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_maintenance_interval``.
        maintenance_policy (str):
            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. Check the MaintenancePolicy enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_maintenance_policy``.
        maintenance_window (google.cloud.compute_v1beta.types.NodeGroupMaintenanceWindow):

            This field is a member of `oneof`_ ``_maintenance_window``.
        name (str):
            The name of the resource, provided by the client when
            initially creating the resource. The resource name must be
            1-63 characters long, and comply with RFC1035. Specifically,
            the name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        node_template (str):
            URL of the node template to create the node
            group from.

            This field is a member of `oneof`_ ``_node_template``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        share_settings (google.cloud.compute_v1beta.types.ShareSettings):
            Share-settings for the node group

            This field is a member of `oneof`_ ``_share_settings``.
        size (int):
            [Output Only] The total number of nodes in the node group.

            This field is a member of `oneof`_ ``_size``.
        status (str):
            Check the Status enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_status``.
        zone (str):
            [Output Only] The name of the zone where the node group
            resides, such as us-central1-a.

            This field is a member of `oneof`_ ``_zone``.
    """

    class MaintenanceInterval(proto.Enum):
        r"""Specifies the frequency of planned maintenance events. The accepted
        values are: ``AS_NEEDED`` and ``RECURRENT``.

        Values:
            UNDEFINED_MAINTENANCE_INTERVAL (0):
                A value indicating that the enum field is not
                set.
            AS_NEEDED (500724834):
                VMs are eligible to receive infrastructure
                and hypervisor updates as they become available.
                This may result in more maintenance operations
                (live migrations or terminations) for the VM
                than the PERIODIC and RECURRENT options.
            PERIODIC (142804635):
                VMs receive infrastructure and hypervisor updates on a
                periodic basis, minimizing the number of maintenance
                operations (live migrations or terminations) on an
                individual VM. This may mean a VM will take longer to
                receive an update than if it was configured for AS_NEEDED.
                Security updates will still be applied as soon as they are
                available.
            RECURRENT (194244550):
                VMs receive infrastructure and hypervisor updates on a
                periodic basis, minimizing the number of maintenance
                operations (live migrations or terminations) on an
                individual VM. This may mean a VM will take longer to
                receive an update than if it was configured for AS_NEEDED.
                Security updates will still be applied as soon as they are
                available. RECURRENT is used for GEN3 and Slice of Hardware
                VMs.
        """
        UNDEFINED_MAINTENANCE_INTERVAL = 0
        AS_NEEDED = 500724834
        PERIODIC = 142804635
        RECURRENT = 194244550

    class MaintenancePolicy(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_MAINTENANCE_POLICY (0):
                A value indicating that the enum field is not
                set.
            DEFAULT (115302945):
                Allow the node and corresponding instances to
                retain default maintenance behavior.
            MAINTENANCE_POLICY_UNSPECIFIED (72964182):
                No description available.
            MIGRATE_WITHIN_NODE_GROUP (153483394):
                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 (228647325):
                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.
        """
        UNDEFINED_MAINTENANCE_POLICY = 0
        DEFAULT = 115302945
        MAINTENANCE_POLICY_UNSPECIFIED = 72964182
        MIGRATE_WITHIN_NODE_GROUP = 153483394
        RESTART_IN_PLACE = 228647325

    class Status(proto.Enum):
        r"""

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                No description available.
            DELETING (528602024):
                No description available.
            INVALID (530283991):
                No description available.
            READY (77848963):
                No description available.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        INVALID = 530283991
        READY = 77848963

    autoscaling_policy: "NodeGroupAutoscalingPolicy" = proto.Field(
        proto.MESSAGE,
        number=221950041,
        optional=True,
        message="NodeGroupAutoscalingPolicy",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    location_hint: str = proto.Field(
        proto.STRING,
        number=350519505,
        optional=True,
    )
    maintenance_interval: str = proto.Field(
        proto.STRING,
        number=403368049,
        optional=True,
    )
    maintenance_policy: str = proto.Field(
        proto.STRING,
        number=528327646,
        optional=True,
    )
    maintenance_window: "NodeGroupMaintenanceWindow" = proto.Field(
        proto.MESSAGE,
        number=186374812,
        optional=True,
        message="NodeGroupMaintenanceWindow",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    node_template: str = proto.Field(
        proto.STRING,
        number=323154455,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    share_settings: "ShareSettings" = proto.Field(
        proto.MESSAGE,
        number=266668163,
        optional=True,
        message="ShareSettings",
    )
    size: int = proto.Field(
        proto.INT32,
        number=3530753,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class NodeGroupAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.NodeGroupsScopedList]):
            A list of NodeGroupsScopedList resources.
        kind (str):
            [Output Only] Type of resource.Always
            compute#nodeGroupAggregatedList for aggregated lists of node
            groups.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "NodeGroupsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="NodeGroupsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeGroupAutoscalingPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_nodes (int):
            The maximum number of nodes that the group
            should have. Must be set if autoscaling is
            enabled. Maximum value allowed is 100.

            This field is a member of `oneof`_ ``_max_nodes``.
        min_nodes (int):
            The minimum number of nodes that the group
            should have.

            This field is a member of `oneof`_ ``_min_nodes``.
        mode (str):
            The autoscaling mode. Set to one of: ON, OFF, or
            ONLY_SCALE_OUT. For more information, see Autoscaler modes.
            Check the Mode enum for the list of possible values.

            This field is a member of `oneof`_ ``_mode``.
    """

    class Mode(proto.Enum):
        r"""The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For
        more information, see Autoscaler modes.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            MODE_UNSPECIFIED (371348091):
                No description available.
            OFF (78159):
                Autoscaling is disabled.
            ON (2527):
                Autocaling is fully enabled.
            ONLY_SCALE_OUT (152713670):
                Autoscaling will only scale out and will not
                remove nodes.
        """
        UNDEFINED_MODE = 0
        MODE_UNSPECIFIED = 371348091
        OFF = 78159
        ON = 2527
        ONLY_SCALE_OUT = 152713670

    max_nodes: int = proto.Field(
        proto.INT32,
        number=297762838,
        optional=True,
    )
    min_nodes: int = proto.Field(
        proto.INT32,
        number=533370500,
        optional=True,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )


class NodeGroupList(proto.Message):
    r"""Contains a list of nodeGroups.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NodeGroup]):
            A list of NodeGroup resources.
        kind (str):
            [Output Only] Type of resource.Always compute#nodeGroupList
            for lists of node groups.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NodeGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NodeGroup",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeGroupMaintenanceWindow(proto.Message):
    r"""Time window specified for daily maintenance operations. GCE's
    internal maintenance will be performed within this window.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        maintenance_duration (google.cloud.compute_v1beta.types.Duration):
            [Output only] A predetermined duration for the window,
            automatically chosen to be the smallest possible in the
            given scenario.

            This field is a member of `oneof`_ ``_maintenance_duration``.
        start_time (str):
            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.

            This field is a member of `oneof`_ ``_start_time``.
    """

    maintenance_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=525291840,
        optional=True,
        message="Duration",
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class NodeGroupNode(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerators (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorConfig]):
            Accelerators for this node.
        consumed_resources (google.cloud.compute_v1beta.types.InstanceConsumptionInfo):
            Node resources that are reserved by all
            instances.

            This field is a member of `oneof`_ ``_consumed_resources``.
        cpu_overcommit_type (str):
            CPU overcommit.
            Check the CpuOvercommitType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_cpu_overcommit_type``.
        disks (MutableSequence[google.cloud.compute_v1beta.types.LocalDisk]):
            Local disk configurations.
        instance_consumption_data (MutableSequence[google.cloud.compute_v1beta.types.InstanceConsumptionData]):
            Instance data that shows consumed resources
            on the node.
        instances (MutableSequence[str]):
            Instances scheduled on this node.
        name (str):
            The name of the node.

            This field is a member of `oneof`_ ``_name``.
        node_type (str):
            The type of this node.

            This field is a member of `oneof`_ ``_node_type``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        server_binding (google.cloud.compute_v1beta.types.ServerBinding):
            Binding properties for the physical server.

            This field is a member of `oneof`_ ``_server_binding``.
        server_id (str):
            Server ID associated with this node.

            This field is a member of `oneof`_ ``_server_id``.
        status (str):
            Check the Status enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_status``.
        total_resources (google.cloud.compute_v1beta.types.InstanceConsumptionInfo):
            Total amount of available resources on the
            node.

            This field is a member of `oneof`_ ``_total_resources``.
        upcoming_maintenance (google.cloud.compute_v1beta.types.UpcomingMaintenance):
            [Output Only] The information about an upcoming maintenance
            event.

            This field is a member of `oneof`_ ``_upcoming_maintenance``.
    """

    class CpuOvercommitType(proto.Enum):
        r"""CPU overcommit.

        Values:
            UNDEFINED_CPU_OVERCOMMIT_TYPE (0):
                A value indicating that the enum field is not
                set.
            CPU_OVERCOMMIT_TYPE_UNSPECIFIED (520665615):
                No description available.
            ENABLED (182130465):
                No description available.
            NONE (2402104):
                No description available.
        """
        UNDEFINED_CPU_OVERCOMMIT_TYPE = 0
        CPU_OVERCOMMIT_TYPE_UNSPECIFIED = 520665615
        ENABLED = 182130465
        NONE = 2402104

    class Status(proto.Enum):
        r"""

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                No description available.
            DELETING (528602024):
                No description available.
            INVALID (530283991):
                No description available.
            READY (77848963):
                No description available.
            REPAIRING (413483285):
                No description available.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        INVALID = 530283991
        READY = 77848963
        REPAIRING = 413483285

    accelerators: MutableSequence["AcceleratorConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=269577064,
        message="AcceleratorConfig",
    )
    consumed_resources: "InstanceConsumptionInfo" = proto.Field(
        proto.MESSAGE,
        number=334527118,
        optional=True,
        message="InstanceConsumptionInfo",
    )
    cpu_overcommit_type: str = proto.Field(
        proto.STRING,
        number=247727959,
        optional=True,
    )
    disks: MutableSequence["LocalDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="LocalDisk",
    )
    instance_consumption_data: MutableSequence[
        "InstanceConsumptionData"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=84715576,
        message="InstanceConsumptionData",
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    node_type: str = proto.Field(
        proto.STRING,
        number=465832791,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    server_binding: "ServerBinding" = proto.Field(
        proto.MESSAGE,
        number=208179593,
        optional=True,
        message="ServerBinding",
    )
    server_id: str = proto.Field(
        proto.STRING,
        number=339433367,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    total_resources: "InstanceConsumptionInfo" = proto.Field(
        proto.MESSAGE,
        number=97406698,
        optional=True,
        message="InstanceConsumptionInfo",
    )
    upcoming_maintenance: "UpcomingMaintenance" = proto.Field(
        proto.MESSAGE,
        number=227348592,
        optional=True,
        message="UpcomingMaintenance",
    )


class NodeGroupsAddNodesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        additional_node_count (int):
            Count of additional nodes to be added to the
            node group.

            This field is a member of `oneof`_ ``_additional_node_count``.
    """

    additional_node_count: int = proto.Field(
        proto.INT32,
        number=134997930,
        optional=True,
    )


class NodeGroupsDeleteNodesRequest(proto.Message):
    r"""

    Attributes:
        nodes (MutableSequence[str]):
            Names of the nodes to delete.
    """

    nodes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=104993457,
    )


class NodeGroupsListNodes(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NodeGroupNode]):
            A list of Node resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute.nodeGroupsListNodes for the list of nodes in the
            specified node group.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NodeGroupNode"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NodeGroupNode",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeGroupsPerformMaintenanceRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        nodes (MutableSequence[str]):
            [Required] List of nodes affected by the call.
        start_time (str):
            The start time of the schedule. The timestamp
            is an RFC3339 string.

            This field is a member of `oneof`_ ``_start_time``.
    """

    nodes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=104993457,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class NodeGroupsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_groups (MutableSequence[google.cloud.compute_v1beta.types.NodeGroup]):
            [Output Only] A list of node groups contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that appears when the
            nodeGroup list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    node_groups: MutableSequence["NodeGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=73188017,
        message="NodeGroup",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeGroupsSetNodeTemplateRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_template (str):
            Full or partial URL of the node template
            resource to be updated for this node group.

            This field is a member of `oneof`_ ``_node_template``.
    """

    node_template: str = proto.Field(
        proto.STRING,
        number=323154455,
        optional=True,
    )


class NodeGroupsSimulateMaintenanceEventRequest(proto.Message):
    r"""

    Attributes:
        nodes (MutableSequence[str]):
            Names of the nodes to go under maintenance
            simulation.
    """

    nodes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=104993457,
    )


class NodeTemplate(proto.Message):
    r"""Represent a sole-tenant Node Template resource. You can use a
    template to define properties for nodes in a node group. For
    more information, read Creating node groups and instances.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerators (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorConfig]):

        cpu_overcommit_type (str):
            CPU overcommit.
            Check the CpuOvercommitType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_cpu_overcommit_type``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        disks (MutableSequence[google.cloud.compute_v1beta.types.LocalDisk]):

        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] The type of the resource. Always
            compute#nodeTemplate for node templates.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            The name of the resource, provided by the client when
            initially creating the resource. The resource name must be
            1-63 characters long, and comply with RFC1035. Specifically,
            the name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        node_affinity_labels (MutableMapping[str, str]):
            Labels to use for node affinity, which will
            be used in instance scheduling.
        node_type (str):
            The node type to use for nodes group that are
            created from this template.

            This field is a member of `oneof`_ ``_node_type``.
        node_type_flexibility (google.cloud.compute_v1beta.types.NodeTemplateNodeTypeFlexibility):
            Do not use. Instead, use the node_type property.

            This field is a member of `oneof`_ ``_node_type_flexibility``.
        region (str):
            [Output Only] The name of the region where the node template
            resides, such as us-central1.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        server_binding (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_server_binding``.
        status (str):
            [Output Only] The status of the node template. One of the
            following values: CREATING, READY, and DELETING. Check the
            Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        status_message (str):
            [Output Only] An optional, human-readable explanation of the
            status.

            This field is a member of `oneof`_ ``_status_message``.
    """

    class CpuOvercommitType(proto.Enum):
        r"""CPU overcommit.

        Values:
            UNDEFINED_CPU_OVERCOMMIT_TYPE (0):
                A value indicating that the enum field is not
                set.
            CPU_OVERCOMMIT_TYPE_UNSPECIFIED (520665615):
                No description available.
            ENABLED (182130465):
                No description available.
            NONE (2402104):
                No description available.
        """
        UNDEFINED_CPU_OVERCOMMIT_TYPE = 0
        CPU_OVERCOMMIT_TYPE_UNSPECIFIED = 520665615
        ENABLED = 182130465
        NONE = 2402104

    class Status(proto.Enum):
        r"""[Output Only] The status of the node template. One of the following
        values: CREATING, READY, and DELETING.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Resources are being allocated.
            DELETING (528602024):
                The node template is currently being deleted.
            INVALID (530283991):
                Invalid status.
            READY (77848963):
                The node template is ready.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        INVALID = 530283991
        READY = 77848963

    accelerators: MutableSequence["AcceleratorConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=269577064,
        message="AcceleratorConfig",
    )
    cpu_overcommit_type: str = proto.Field(
        proto.STRING,
        number=247727959,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disks: MutableSequence["LocalDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="LocalDisk",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    node_affinity_labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=339007161,
    )
    node_type: str = proto.Field(
        proto.STRING,
        number=465832791,
        optional=True,
    )
    node_type_flexibility: "NodeTemplateNodeTypeFlexibility" = proto.Field(
        proto.MESSAGE,
        number=315257905,
        optional=True,
        message="NodeTemplateNodeTypeFlexibility",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    server_binding: "ServerBinding" = proto.Field(
        proto.MESSAGE,
        number=208179593,
        optional=True,
        message="ServerBinding",
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    status_message: str = proto.Field(
        proto.STRING,
        number=297428154,
        optional=True,
    )


class NodeTemplateAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.NodeTemplatesScopedList]):
            A list of NodeTemplatesScopedList resources.
        kind (str):
            [Output Only] Type of resource.Always
            compute#nodeTemplateAggregatedList for aggregated lists of
            node templates.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "NodeTemplatesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="NodeTemplatesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeTemplateList(proto.Message):
    r"""Contains a list of node templates.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NodeTemplate]):
            A list of NodeTemplate resources.
        kind (str):
            [Output Only] Type of resource.Always
            compute#nodeTemplateList for lists of node templates.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NodeTemplate"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NodeTemplate",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeTemplateNodeTypeFlexibility(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cpus (str):

            This field is a member of `oneof`_ ``_cpus``.
        local_ssd (str):

            This field is a member of `oneof`_ ``_local_ssd``.
        memory (str):

            This field is a member of `oneof`_ ``_memory``.
    """

    cpus: str = proto.Field(
        proto.STRING,
        number=3060683,
        optional=True,
    )
    local_ssd: str = proto.Field(
        proto.STRING,
        number=405741360,
        optional=True,
    )
    memory: str = proto.Field(
        proto.STRING,
        number=532856065,
        optional=True,
    )


class NodeTemplatesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_templates (MutableSequence[google.cloud.compute_v1beta.types.NodeTemplate]):
            [Output Only] A list of node templates contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that appears when the
            node templates list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    node_templates: MutableSequence["NodeTemplate"] = proto.RepeatedField(
        proto.MESSAGE,
        number=354111804,
        message="NodeTemplate",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeType(proto.Message):
    r"""Represent a sole-tenant Node Type resource. Each node within
    a node group must have a node type. A node type specifies the
    total amount of cores and memory for that node. Currently, the
    only available node type is n1-node-96-624 node type that has 96
    vCPUs and 624 GB of memory, available in multiple zones. For
    more information read Node types.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cpu_platform (str):
            [Output Only] The CPU platform used by this node type.

            This field is a member of `oneof`_ ``_cpu_platform``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            [Output Only] The deprecation status associated with this
            node type.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            [Output Only] An optional textual description of the
            resource.

            This field is a member of `oneof`_ ``_description``.
        guest_cpus (int):
            [Output Only] The number of virtual CPUs that are available
            to the node type.

            This field is a member of `oneof`_ ``_guest_cpus``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] The type of the resource. Always
            compute#nodeType for node types.

            This field is a member of `oneof`_ ``_kind``.
        local_ssd_gb (int):
            [Output Only] Local SSD available to the node type, defined
            in GB.

            This field is a member of `oneof`_ ``_local_ssd_gb``.
        max_vms (int):
            [Output Only] Maximum number of VMs that can be created for
            this node type.

            This field is a member of `oneof`_ ``_max_vms``.
        memory_mb (int):
            [Output Only] The amount of physical memory available to the
            node type, defined in MB.

            This field is a member of `oneof`_ ``_memory_mb``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        zone (str):
            [Output Only] The name of the zone where the node type
            resides, such as us-central1-a.

            This field is a member of `oneof`_ ``_zone``.
    """

    cpu_platform: str = proto.Field(
        proto.STRING,
        number=410285354,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    guest_cpus: int = proto.Field(
        proto.INT32,
        number=393356754,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    local_ssd_gb: int = proto.Field(
        proto.INT32,
        number=329237578,
        optional=True,
    )
    max_vms: int = proto.Field(
        proto.INT32,
        number=307579713,
        optional=True,
    )
    memory_mb: int = proto.Field(
        proto.INT32,
        number=116001171,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class NodeTypeAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.NodeTypesScopedList]):
            A list of NodeTypesScopedList resources.
        kind (str):
            [Output Only] Type of resource.Always
            compute#nodeTypeAggregatedList for aggregated lists of node
            types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "NodeTypesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="NodeTypesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeTypeList(proto.Message):
    r"""Contains a list of node types.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NodeType]):
            A list of NodeType resources.
        kind (str):
            [Output Only] Type of resource.Always compute#nodeTypeList
            for lists of node types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NodeType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NodeType",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NodeTypesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_types (MutableSequence[google.cloud.compute_v1beta.types.NodeType]):
            [Output Only] A list of node types contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] An informational warning that appears when the
            node types list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    node_types: MutableSequence["NodeType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=482172924,
        message="NodeType",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class NotificationEndpoint(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        grpc_settings (google.cloud.compute_v1beta.types.NotificationEndpointGrpcSettings):
            Settings of the gRPC notification endpoint
            including the endpoint URL and the retry
            duration.

            This field is a member of `oneof`_ ``_grpc_settings``.
        id (int):
            [Output Only] A unique identifier for this resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#notificationEndpoint for notification endpoints.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    grpc_settings: "NotificationEndpointGrpcSettings" = proto.Field(
        proto.MESSAGE,
        number=456139556,
        optional=True,
        message="NotificationEndpointGrpcSettings",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class NotificationEndpointGrpcSettings(proto.Message):
    r"""Represents a gRPC setting that describes one gRPC
    notification endpoint and the retry duration attempting to send
    notification to this endpoint.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        authority (str):
            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

            This field is a member of `oneof`_ ``_authority``.
        endpoint (str):
            Endpoint to which gRPC notifications are
            sent. This must be a valid gRPCLB DNS name.

            This field is a member of `oneof`_ ``_endpoint``.
        payload_name (str):
            Optional. If specified, this field is used to
            populate the "name" field in gRPC requests.

            This field is a member of `oneof`_ ``_payload_name``.
        resend_interval (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_resend_interval``.
        retry_duration_sec (int):
            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.

            This field is a member of `oneof`_ ``_retry_duration_sec``.
    """

    authority: str = proto.Field(
        proto.STRING,
        number=401868611,
        optional=True,
    )
    endpoint: str = proto.Field(
        proto.STRING,
        number=130489749,
        optional=True,
    )
    payload_name: str = proto.Field(
        proto.STRING,
        number=300358300,
        optional=True,
    )
    resend_interval: "Duration" = proto.Field(
        proto.MESSAGE,
        number=478288969,
        optional=True,
        message="Duration",
    )
    retry_duration_sec: int = proto.Field(
        proto.UINT32,
        number=115681117,
        optional=True,
    )


class NotificationEndpointList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.NotificationEndpoint]):
            A list of NotificationEndpoint resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#notificationEndpoint for notification endpoints.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["NotificationEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="NotificationEndpoint",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class Operation(proto.Message):
    r"""Represents an Operation resource. Google Compute Engine has three
    Operation resources: \*
    `Global </compute/docs/reference/rest/beta/globalOperations>`__ \*
    `Regional </compute/docs/reference/rest/beta/regionOperations>`__ \*
    `Zonal </compute/docs/reference/rest/beta/zoneOperations>`__ You can
    use an operation resource to manage asynchronous API requests. For
    more information, read Handling API responses. Operations can be
    global, regional or zonal. - For global operations, use the
    ``globalOperations`` resource. - For regional operations, use the
    ``regionOperations`` resource. - For zonal operations, use the
    ``zoneOperations`` resource. For more information, read Global,
    Regional, and Zonal Resources. Note that completed Operation
    resources have a limited retention period.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        client_operation_id (str):
            [Output Only] The value of ``requestId`` if you provided it
            in the request. Not present otherwise.

            This field is a member of `oneof`_ ``_client_operation_id``.
        creation_timestamp (str):
            [Deprecated] This field is deprecated.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            [Output Only] A textual description of the operation, which
            is set when the operation is created.

            This field is a member of `oneof`_ ``_description``.
        end_time (str):
            [Output Only] The time that this operation was completed.
            This value is in RFC3339 text format.

            This field is a member of `oneof`_ ``_end_time``.
        error (google.cloud.compute_v1beta.types.Error):
            [Output Only] If errors are generated during processing of
            the operation, this field will be populated.

            This field is a member of `oneof`_ ``_error``.
        http_error_message (str):
            [Output Only] If the operation fails, this field contains
            the HTTP error message that was returned, such as
            ``NOT FOUND``.

            This field is a member of `oneof`_ ``_http_error_message``.
        http_error_status_code (int):
            [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.

            This field is a member of `oneof`_ ``_http_error_status_code``.
        id (int):
            [Output Only] The unique identifier for the operation. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        insert_time (str):
            [Output Only] The time that this operation was requested.
            This value is in RFC3339 text format.

            This field is a member of `oneof`_ ``_insert_time``.
        instances_bulk_insert_operation_metadata (google.cloud.compute_v1beta.types.InstancesBulkInsertOperationMetadata):

            This field is a member of `oneof`_ ``_instances_bulk_insert_operation_metadata``.
        kind (str):
            [Output Only] Type of the resource. Always
            ``compute#operation`` for Operation resources.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            [Output Only] Name of the operation.

            This field is a member of `oneof`_ ``_name``.
        operation_group_id (str):
            [Output Only] An ID that represents a group of operations,
            such as when a group of operations results from a
            ``bulkInsert`` API request.

            This field is a member of `oneof`_ ``_operation_group_id``.
        operation_type (str):
            [Output Only] The type of operation, such as ``insert``,
            ``update``, or ``delete``, and so on.

            This field is a member of `oneof`_ ``_operation_type``.
        progress (int):
            [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.

            This field is a member of `oneof`_ ``_progress``.
        region (str):
            [Output Only] The URL of the region where the operation
            resides. Only applicable when performing regional
            operations.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        set_common_instance_metadata_operation_metadata (google.cloud.compute_v1beta.types.SetCommonInstanceMetadataOperationMetadata):
            [Output Only] If the operation is for
            projects.setCommonInstanceMetadata, this field will contain
            information on all underlying zonal actions and their state.

            This field is a member of `oneof`_ ``_set_common_instance_metadata_operation_metadata``.
        start_time (str):
            [Output Only] The time that this operation was started by
            the server. This value is in RFC3339 text format.

            This field is a member of `oneof`_ ``_start_time``.
        status (google.cloud.compute_v1beta.types.Operation.Status):
            [Output Only] The status of the operation, which can be one
            of the following: ``PENDING``, ``RUNNING``, or ``DONE``.

            This field is a member of `oneof`_ ``_status``.
        status_message (str):
            [Output Only] An optional textual description of the current
            status of the operation.

            This field is a member of `oneof`_ ``_status_message``.
        target_id (int):
            [Output Only] The unique target ID, which identifies a
            specific incarnation of the target resource.

            This field is a member of `oneof`_ ``_target_id``.
        target_link (str):
            [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.

            This field is a member of `oneof`_ ``_target_link``.
        user (str):
            [Output Only] User who requested the operation, for example:
            ``user@example.com`` or
            ``alice_smith_identifier (global/workforcePools/example-com-us-employees)``.

            This field is a member of `oneof`_ ``_user``.
        warnings (MutableSequence[google.cloud.compute_v1beta.types.Warnings]):
            [Output Only] If warning messages are generated during
            processing of the operation, this field will be populated.
        zone (str):
            [Output Only] The URL of the zone where the operation
            resides. Only applicable when performing per-zone
            operations.

            This field is a member of `oneof`_ ``_zone``.
    """

    class Status(proto.Enum):
        r"""[Output Only] The status of the operation, which can be one of the
        following: ``PENDING``, ``RUNNING``, or ``DONE``.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            DONE (2104194):
                No description available.
            PENDING (35394935):
                No description available.
            RUNNING (121282975):
                No description available.
        """
        UNDEFINED_STATUS = 0
        DONE = 2104194
        PENDING = 35394935
        RUNNING = 121282975

    client_operation_id: str = proto.Field(
        proto.STRING,
        number=297240295,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    end_time: str = proto.Field(
        proto.STRING,
        number=114938801,
        optional=True,
    )
    error: "Error" = proto.Field(
        proto.MESSAGE,
        number=96784904,
        optional=True,
        message="Error",
    )
    http_error_message: str = proto.Field(
        proto.STRING,
        number=202521945,
        optional=True,
    )
    http_error_status_code: int = proto.Field(
        proto.INT32,
        number=312345196,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    insert_time: str = proto.Field(
        proto.STRING,
        number=433722515,
        optional=True,
    )
    instances_bulk_insert_operation_metadata: "InstancesBulkInsertOperationMetadata" = (
        proto.Field(
            proto.MESSAGE,
            number=89146177,
            optional=True,
            message="InstancesBulkInsertOperationMetadata",
        )
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    operation_group_id: str = proto.Field(
        proto.STRING,
        number=40171187,
        optional=True,
    )
    operation_type: str = proto.Field(
        proto.STRING,
        number=177650450,
        optional=True,
    )
    progress: int = proto.Field(
        proto.INT32,
        number=72663597,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    set_common_instance_metadata_operation_metadata: "SetCommonInstanceMetadataOperationMetadata" = proto.Field(
        proto.MESSAGE,
        number=490378980,
        optional=True,
        message="SetCommonInstanceMetadataOperationMetadata",
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )
    status: Status = proto.Field(
        proto.ENUM,
        number=181260274,
        optional=True,
        enum=Status,
    )
    status_message: str = proto.Field(
        proto.STRING,
        number=297428154,
        optional=True,
    )
    target_id: int = proto.Field(
        proto.UINT64,
        number=258165385,
        optional=True,
    )
    target_link: str = proto.Field(
        proto.STRING,
        number=62671336,
        optional=True,
    )
    user: str = proto.Field(
        proto.STRING,
        number=3599307,
        optional=True,
    )
    warnings: MutableSequence["Warnings"] = proto.RepeatedField(
        proto.MESSAGE,
        number=498091095,
        message="Warnings",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )

    @property
    def done(self) -> bool:
        """Return True if the backing extended operation is completed, False otherwise."""
        return self.status == type(self.status).DONE


class OperationAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.OperationsScopedList]):
            [Output Only] A map of scoped operation lists.
        kind (str):
            [Output Only] Type of resource. Always
            ``compute#operationAggregatedList`` for aggregated lists of
            operations.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "OperationsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="OperationsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class OperationList(proto.Message):
    r"""Contains a list of Operation resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Operation]):
            [Output Only] A list of Operation resources.
        kind (str):
            [Output Only] Type of resource. Always
            ``compute#operations`` for Operations resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Operation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Operation",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class OperationsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        operations (MutableSequence[google.cloud.compute_v1beta.types.Operation]):
            [Output Only] A list of operations contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of operations when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    operations: MutableSequence["Operation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=4184044,
        message="Operation",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class OrganizationSecurityPoliciesListAssociationsResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        associations (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyAssociation]):
            A list of associations.
        kind (str):
            [Output Only] Type of securityPolicy associations. Always
            compute#organizationSecurityPoliciesListAssociations for
            lists of securityPolicy associations.

            This field is a member of `oneof`_ ``_kind``.
    """

    associations: MutableSequence["SecurityPolicyAssociation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=508736530,
        message="SecurityPolicyAssociation",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )


class OutlierDetection(proto.Message):
    r"""Settings controlling the eviction of unhealthy hosts from the
    load balancing pool for the backend service.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        base_ejection_time (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_base_ejection_time``.
        consecutive_errors (int):
            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.

            This field is a member of `oneof`_ ``_consecutive_errors``.
        consecutive_gateway_failure (int):
            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.

            This field is a member of `oneof`_ ``_consecutive_gateway_failure``.
        enforcing_consecutive_errors (int):
            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.

            This field is a member of `oneof`_ ``_enforcing_consecutive_errors``.
        enforcing_consecutive_gateway_failure (int):
            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.

            This field is a member of `oneof`_ ``_enforcing_consecutive_gateway_failure``.
        enforcing_success_rate (int):
            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.

            This field is a member of `oneof`_ ``_enforcing_success_rate``.
        interval (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_interval``.
        max_ejection_percent (int):
            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%.

            This field is a member of `oneof`_ ``_max_ejection_percent``.
        success_rate_minimum_hosts (int):
            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.

            This field is a member of `oneof`_ ``_success_rate_minimum_hosts``.
        success_rate_request_volume (int):
            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.

            This field is a member of `oneof`_ ``_success_rate_request_volume``.
        success_rate_stdev_factor (int):
            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.

            This field is a member of `oneof`_ ``_success_rate_stdev_factor``.
    """

    base_ejection_time: "Duration" = proto.Field(
        proto.MESSAGE,
        number=80997255,
        optional=True,
        message="Duration",
    )
    consecutive_errors: int = proto.Field(
        proto.INT32,
        number=387193248,
        optional=True,
    )
    consecutive_gateway_failure: int = proto.Field(
        proto.INT32,
        number=417504250,
        optional=True,
    )
    enforcing_consecutive_errors: int = proto.Field(
        proto.INT32,
        number=213133760,
        optional=True,
    )
    enforcing_consecutive_gateway_failure: int = proto.Field(
        proto.INT32,
        number=394440666,
        optional=True,
    )
    enforcing_success_rate: int = proto.Field(
        proto.INT32,
        number=194508732,
        optional=True,
    )
    interval: "Duration" = proto.Field(
        proto.MESSAGE,
        number=33547461,
        optional=True,
        message="Duration",
    )
    max_ejection_percent: int = proto.Field(
        proto.INT32,
        number=18436888,
        optional=True,
    )
    success_rate_minimum_hosts: int = proto.Field(
        proto.INT32,
        number=525766903,
        optional=True,
    )
    success_rate_request_volume: int = proto.Field(
        proto.INT32,
        number=281425357,
        optional=True,
    )
    success_rate_stdev_factor: int = proto.Field(
        proto.INT32,
        number=174735773,
        optional=True,
    )


class PacketIntervals(proto.Message):
    r"""Next free: 7

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        avg_ms (int):
            Average observed inter-packet interval in
            milliseconds.

            This field is a member of `oneof`_ ``_avg_ms``.
        duration (str):
            From how long ago in the past these intervals
            were observed. Check the Duration enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_duration``.
        max_ms (int):
            Maximum observed inter-packet interval in
            milliseconds.

            This field is a member of `oneof`_ ``_max_ms``.
        min_ms (int):
            Minimum observed inter-packet interval in
            milliseconds.

            This field is a member of `oneof`_ ``_min_ms``.
        num_intervals (int):
            Number of inter-packet intervals from which
            these statistics were derived.

            This field is a member of `oneof`_ ``_num_intervals``.
        type_ (str):
            The type of packets for which inter-packet
            intervals were computed. Check the Type enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Duration(proto.Enum):
        r"""From how long ago in the past these intervals were observed.

        Values:
            UNDEFINED_DURATION (0):
                A value indicating that the enum field is not
                set.
            DURATION_UNSPECIFIED (529071340):
                No description available.
            HOUR (2223588):
                No description available.
            MAX (76100):
                From BfdSession object creation time.
            MINUTE (126786068):
                No description available.
        """
        UNDEFINED_DURATION = 0
        DURATION_UNSPECIFIED = 529071340
        HOUR = 2223588
        MAX = 76100
        MINUTE = 126786068

    class Type(proto.Enum):
        r"""The type of packets for which inter-packet intervals were
        computed.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            LOOPBACK (356174219):
                Only applies to Echo packets. This shows the
                intervals between sending and receiving the same
                packet.
            RECEIVE (189660867):
                Intervals between received packets.
            TRANSMIT (452903600):
                Intervals between transmitted packets.
            TYPE_UNSPECIFIED (437714322):
                No description available.
        """
        UNDEFINED_TYPE = 0
        LOOPBACK = 356174219
        RECEIVE = 189660867
        TRANSMIT = 452903600
        TYPE_UNSPECIFIED = 437714322

    avg_ms: int = proto.Field(
        proto.INT64,
        number=204811827,
        optional=True,
    )
    duration: str = proto.Field(
        proto.STRING,
        number=155471252,
        optional=True,
    )
    max_ms: int = proto.Field(
        proto.INT64,
        number=529474145,
        optional=True,
    )
    min_ms: int = proto.Field(
        proto.INT64,
        number=536564403,
        optional=True,
    )
    num_intervals: int = proto.Field(
        proto.INT64,
        number=186329813,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class PacketMirroring(proto.Message):
    r"""Represents a Packet Mirroring resource. Packet Mirroring
    clones the traffic of specified instances in your Virtual
    Private Cloud (VPC) network and forwards it to a collector
    destination, such as an instance group of an internal TCP/UDP
    load balancer, for analysis or examination. For more information
    about setting up Packet Mirroring, see Using Packet Mirroring.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        collector_ilb (google.cloud.compute_v1beta.types.PacketMirroringForwardingRuleInfo):
            The Forwarding Rule resource of type
            loadBalancingScheme=INTERNAL that will be used
            as collector for mirrored traffic. The specified
            forwarding rule must have isMirroringCollector
            set to true.

            This field is a member of `oneof`_ ``_collector_ilb``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        enable (str):
            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. Check the
            Enable enum for the list of possible values.

            This field is a member of `oneof`_ ``_enable``.
        filter (google.cloud.compute_v1beta.types.PacketMirroringFilter):
            Filter for mirrored traffic. If unspecified,
            all IPv4 traffic is mirrored.

            This field is a member of `oneof`_ ``_filter``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#packetMirroring for packet mirrorings.

            This field is a member of `oneof`_ ``_kind``.
        mirrored_resources (google.cloud.compute_v1beta.types.PacketMirroringMirroredResourceInfo):
            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.

            This field is a member of `oneof`_ ``_mirrored_resources``.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (google.cloud.compute_v1beta.types.PacketMirroringNetworkInfo):
            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.

            This field is a member of `oneof`_ ``_network``.
        priority (int):
            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.

            This field is a member of `oneof`_ ``_priority``.
        region (str):
            [Output Only] URI of the region where the packetMirroring
            resides.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    class Enable(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_ENABLE (0):
                A value indicating that the enum field is not
                set.
            FALSE (66658563):
                No description available.
            TRUE (2583950):
                No description available.
        """
        UNDEFINED_ENABLE = 0
        FALSE = 66658563
        TRUE = 2583950

    collector_ilb: "PacketMirroringForwardingRuleInfo" = proto.Field(
        proto.MESSAGE,
        number=426607853,
        optional=True,
        message="PacketMirroringForwardingRuleInfo",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    enable: str = proto.Field(
        proto.STRING,
        number=311764355,
        optional=True,
    )
    filter: "PacketMirroringFilter" = proto.Field(
        proto.MESSAGE,
        number=336120696,
        optional=True,
        message="PacketMirroringFilter",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    mirrored_resources: "PacketMirroringMirroredResourceInfo" = proto.Field(
        proto.MESSAGE,
        number=124817348,
        optional=True,
        message="PacketMirroringMirroredResourceInfo",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: "PacketMirroringNetworkInfo" = proto.Field(
        proto.MESSAGE,
        number=232872494,
        optional=True,
        message="PacketMirroringNetworkInfo",
    )
    priority: int = proto.Field(
        proto.UINT32,
        number=445151652,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class PacketMirroringAggregatedList(proto.Message):
    r"""Contains a list of packetMirrorings.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.PacketMirroringsScopedList]):
            A list of PacketMirroring resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "PacketMirroringsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="PacketMirroringsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class PacketMirroringFilter(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        I_p_protocols (MutableSequence[str]):
            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.
        cidr_ranges (MutableSequence[str]):
            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".
        direction (str):
            Direction of traffic to mirror, either
            INGRESS, EGRESS, or BOTH. The default is BOTH.
            Check the Direction enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_direction``.
    """

    class Direction(proto.Enum):
        r"""Direction of traffic to mirror, either INGRESS, EGRESS, or
        BOTH. The default is BOTH.

        Values:
            UNDEFINED_DIRECTION (0):
                A value indicating that the enum field is not
                set.
            BOTH (2044801):
                Default, both directions are mirrored.
            EGRESS (432880501):
                Only egress traffic is mirrored.
            INGRESS (516931221):
                Only ingress traffic is mirrored.
        """
        UNDEFINED_DIRECTION = 0
        BOTH = 2044801
        EGRESS = 432880501
        INGRESS = 516931221

    I_p_protocols: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=98544854,
    )
    cidr_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=487901697,
    )
    direction: str = proto.Field(
        proto.STRING,
        number=111150975,
        optional=True,
    )


class PacketMirroringForwardingRuleInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        canonical_url (str):
            [Output Only] Unique identifier for the forwarding rule;
            defined by the server.

            This field is a member of `oneof`_ ``_canonical_url``.
        url (str):
            Resource URL to the forwarding rule
            representing the ILB configured as destination
            of the mirrored traffic.

            This field is a member of `oneof`_ ``_url``.
    """

    canonical_url: str = proto.Field(
        proto.STRING,
        number=512294820,
        optional=True,
    )
    url: str = proto.Field(
        proto.STRING,
        number=116079,
        optional=True,
    )


class PacketMirroringList(proto.Message):
    r"""Contains a list of PacketMirroring resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.PacketMirroring]):
            A list of PacketMirroring resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#packetMirroring for packetMirrorings.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["PacketMirroring"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="PacketMirroring",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class PacketMirroringMirroredResourceInfo(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.PacketMirroringMirroredResourceInfoInstanceInfo]):
            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.
        subnetworks (MutableSequence[google.cloud.compute_v1beta.types.PacketMirroringMirroredResourceInfoSubnetInfo]):
            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.
        tags (MutableSequence[str]):
            A set of mirrored tags. Traffic from/to all
            VM instances that have one or more of these tags
            will be mirrored.
    """

    instances: MutableSequence[
        "PacketMirroringMirroredResourceInfoInstanceInfo"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="PacketMirroringMirroredResourceInfoInstanceInfo",
    )
    subnetworks: MutableSequence[
        "PacketMirroringMirroredResourceInfoSubnetInfo"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=415853125,
        message="PacketMirroringMirroredResourceInfoSubnetInfo",
    )
    tags: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=3552281,
    )


class PacketMirroringMirroredResourceInfoInstanceInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        canonical_url (str):
            [Output Only] Unique identifier for the instance; defined by
            the server.

            This field is a member of `oneof`_ ``_canonical_url``.
        url (str):
            Resource URL to the virtual machine instance
            which is being mirrored.

            This field is a member of `oneof`_ ``_url``.
    """

    canonical_url: str = proto.Field(
        proto.STRING,
        number=512294820,
        optional=True,
    )
    url: str = proto.Field(
        proto.STRING,
        number=116079,
        optional=True,
    )


class PacketMirroringMirroredResourceInfoSubnetInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        canonical_url (str):
            [Output Only] Unique identifier for the subnetwork; defined
            by the server.

            This field is a member of `oneof`_ ``_canonical_url``.
        url (str):
            Resource URL to the subnetwork for which
            traffic from/to all VM instances will be
            mirrored.

            This field is a member of `oneof`_ ``_url``.
    """

    canonical_url: str = proto.Field(
        proto.STRING,
        number=512294820,
        optional=True,
    )
    url: str = proto.Field(
        proto.STRING,
        number=116079,
        optional=True,
    )


class PacketMirroringNetworkInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        canonical_url (str):
            [Output Only] Unique identifier for the network; defined by
            the server.

            This field is a member of `oneof`_ ``_canonical_url``.
        url (str):
            URL of the network resource.

            This field is a member of `oneof`_ ``_url``.
    """

    canonical_url: str = proto.Field(
        proto.STRING,
        number=512294820,
        optional=True,
    )
    url: str = proto.Field(
        proto.STRING,
        number=116079,
        optional=True,
    )


class PacketMirroringsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        packet_mirrorings (MutableSequence[google.cloud.compute_v1beta.types.PacketMirroring]):
            A list of packetMirrorings contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of packetMirrorings when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    packet_mirrorings: MutableSequence["PacketMirroring"] = proto.RepeatedField(
        proto.MESSAGE,
        number=154615079,
        message="PacketMirroring",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class PartnerMetadata(proto.Message):
    r"""Model definition of partner_metadata field. To be used in dedicated
    Partner Metadata methods and to be inlined in the Instance and
    InstanceTemplate resources.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            Instance-level hash to be used for optimistic
            locking.

            This field is a member of `oneof`_ ``_fingerprint``.
        partner_metadata (MutableMapping[str, google.cloud.compute_v1beta.types.StructuredEntries]):
            Partner Metadata assigned to the instance. A
            map from a subdomain to entries map. Subdomain
            name must be compliant with RFC1035 definition.
            The total size of all keys and values must be
            less than 2MB. Subdomain
            'metadata.compute.googleapis.com' is reserverd
            for instance's metadata.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    partner_metadata: MutableMapping[str, "StructuredEntries"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=65908934,
        message="StructuredEntries",
    )


class PatchAssociationRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.PatchAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_association_resource (google.cloud.compute_v1beta.types.FirewallPolicyAssociation):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_association_resource: "FirewallPolicyAssociation" = proto.Field(
        proto.MESSAGE,
        number=259546170,
        message="FirewallPolicyAssociation",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchAutoscalerRequest(proto.Message):
    r"""A request message for Autoscalers.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler (str):
            Name of the autoscaler to patch.

            This field is a member of `oneof`_ ``_autoscaler``.
        autoscaler_resource (google.cloud.compute_v1beta.types.Autoscaler):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
        optional=True,
    )
    autoscaler_resource: "Autoscaler" = proto.Field(
        proto.MESSAGE,
        number=207616118,
        message="Autoscaler",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PatchBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_bucket (str):
            Name of the BackendBucket resource to patch.
        backend_bucket_resource (google.cloud.compute_v1beta.types.BackendBucket):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_bucket: str = proto.Field(
        proto.STRING,
        number=91714037,
    )
    backend_bucket_resource: "BackendBucket" = proto.Field(
        proto.MESSAGE,
        number=380757784,
        message="BackendBucket",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to patch.
        backend_service_resource (google.cloud.compute_v1beta.types.BackendService):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    backend_service_resource: "BackendService" = proto.Field(
        proto.MESSAGE,
        number=347586723,
        message="BackendService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchCrossSiteNetworkRequest(proto.Message):
    r"""A request message for CrossSiteNetworks.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cross_site_network (str):
            Name of the cross-site network to update.
        cross_site_network_resource (google.cloud.compute_v1beta.types.CrossSiteNetwork):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        validate_only (bool):
            [Input Only] Validate the new configuration, but don't
            update it.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    cross_site_network_resource: "CrossSiteNetwork" = proto.Field(
        proto.MESSAGE,
        number=30896696,
        message="CrossSiteNetwork",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class PatchDiskSettingRequest(proto.Message):
    r"""A request message for DiskSettingsService.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_settings_resource (google.cloud.compute_v1beta.types.DiskSettings):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        zone (str):
            The name of the zone for this request.
    """

    disk_settings_resource: "DiskSettings" = proto.Field(
        proto.MESSAGE,
        number=267573896,
        message="DiskSettings",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PatchFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_resource (google.cloud.compute_v1beta.types.FirewallPolicy):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_resource: "FirewallPolicy" = proto.Field(
        proto.MESSAGE,
        number=495049532,
        message="FirewallPolicy",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchFirewallRequest(proto.Message):
    r"""A request message for Firewalls.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall (str):
            Name of the firewall rule to patch.
        firewall_resource (google.cloud.compute_v1beta.types.Firewall):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall: str = proto.Field(
        proto.STRING,
        number=511016192,
    )
    firewall_resource: "Firewall" = proto.Field(
        proto.MESSAGE,
        number=41425005,
        message="Firewall",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchForwardingRuleRequest(proto.Message):
    r"""A request message for ForwardingRules.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource to patch.
        forwarding_rule_resource (google.cloud.compute_v1beta.types.ForwardingRule):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    forwarding_rule_resource: "ForwardingRule" = proto.Field(
        proto.MESSAGE,
        number=301211695,
        message="ForwardingRule",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchGlobalForwardingRuleRequest(proto.Message):
    r"""A request message for GlobalForwardingRules.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource to patch.
        forwarding_rule_resource (google.cloud.compute_v1beta.types.ForwardingRule):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    forwarding_rule_resource: "ForwardingRule" = proto.Field(
        proto.MESSAGE,
        number=301211695,
        message="ForwardingRule",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchGlobalPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for GlobalPublicDelegatedPrefixes.Patch.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            Name of the PublicDelegatedPrefix resource to
            patch.
        public_delegated_prefix_resource (google.cloud.compute_v1beta.types.PublicDelegatedPrefix):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )
    public_delegated_prefix_resource: "PublicDelegatedPrefix" = proto.Field(
        proto.MESSAGE,
        number=47594501,
        message="PublicDelegatedPrefix",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchHealthCheckRequest(proto.Message):
    r"""A request message for HealthChecks.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to patch.
        health_check_resource (google.cloud.compute_v1beta.types.HealthCheck):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    health_check_resource: "HealthCheck" = proto.Field(
        proto.MESSAGE,
        number=201925032,
        message="HealthCheck",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchImageRequest(proto.Message):
    r"""A request message for Images.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        image (str):
            Name of the image resource to patch.
        image_resource (google.cloud.compute_v1beta.types.Image):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    image: str = proto.Field(
        proto.STRING,
        number=100313435,
    )
    image_resource: "Image" = proto.Field(
        proto.MESSAGE,
        number=371171954,
        message="Image",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the instance group manager.
        instance_group_manager_resource (google.cloud.compute_v1beta.types.InstanceGroupManager):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where you want to create
            the managed instance group.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_manager_resource: "InstanceGroupManager" = proto.Field(
        proto.MESSAGE,
        number=261063946,
        message="InstanceGroupManager",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PatchInstanceSettingRequest(proto.Message):
    r"""A request message for InstanceSettingsService.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_settings_resource (google.cloud.compute_v1beta.types.InstanceSettings):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        zone (str):
            The zone scoping this request. It should
            conform to RFC1035.
    """

    instance_settings_resource: "InstanceSettings" = proto.Field(
        proto.MESSAGE,
        number=290689920,
        message="InstanceSettings",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PatchInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for InterconnectAttachmentGroups.Patch. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_attachment_group (str):
            Name of the InterconnectAttachmentGroup
            resource to patch.
        interconnect_attachment_group_resource (google.cloud.compute_v1beta.types.InterconnectAttachmentGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            The list of fields to update.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    interconnect_attachment_group: str = proto.Field(
        proto.STRING,
        number=75905012,
    )
    interconnect_attachment_group_resource: "InterconnectAttachmentGroup" = proto.Field(
        proto.MESSAGE,
        number=9990137,
        message="InterconnectAttachmentGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchInterconnectAttachmentRequest(proto.Message):
    r"""A request message for InterconnectAttachments.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_attachment (str):
            Name of the interconnect attachment to patch.
        interconnect_attachment_resource (google.cloud.compute_v1beta.types.InterconnectAttachment):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect_attachment: str = proto.Field(
        proto.STRING,
        number=308135284,
    )
    interconnect_attachment_resource: "InterconnectAttachment" = proto.Field(
        proto.MESSAGE,
        number=212341369,
        message="InterconnectAttachment",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect_group (str):
            Name of the InterconnectGroup resource to
            patch.
        interconnect_group_resource (google.cloud.compute_v1beta.types.InterconnectGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            The list of fields to update.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    interconnect_group: str = proto.Field(
        proto.STRING,
        number=388651918,
    )
    interconnect_group_resource: "InterconnectGroup" = proto.Field(
        proto.MESSAGE,
        number=85571999,
        message="InterconnectGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect (str):
            Name of the interconnect to update.
        interconnect_resource (google.cloud.compute_v1beta.types.Interconnect):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
    )
    interconnect_resource: "Interconnect" = proto.Field(
        proto.MESSAGE,
        number=397611167,
        message="Interconnect",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchNetworkAttachmentRequest(proto.Message):
    r"""A request message for NetworkAttachments.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_attachment (str):
            Name of the NetworkAttachment resource to
            patch.
        network_attachment_resource (google.cloud.compute_v1beta.types.NetworkAttachment):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
    """

    network_attachment: str = proto.Field(
        proto.STRING,
        number=224644052,
    )
    network_attachment_resource: "NetworkAttachment" = proto.Field(
        proto.MESSAGE,
        number=210974745,
        message="NetworkAttachment",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchNetworkEdgeSecurityServiceRequest(proto.Message):
    r"""A request message for NetworkEdgeSecurityServices.Patch. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_edge_security_service (str):
            Name of the network edge security service to
            update.
        network_edge_security_service_resource (google.cloud.compute_v1beta.types.NetworkEdgeSecurityService):
            The body resource for this request
        paths (str):

            This field is a member of `oneof`_ ``_paths``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            Indicates fields to be updated as part of
            this request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    network_edge_security_service: str = proto.Field(
        proto.STRING,
        number=157011879,
    )
    network_edge_security_service_resource: "NetworkEdgeSecurityService" = proto.Field(
        proto.MESSAGE,
        number=477548966,
        message="NetworkEdgeSecurityService",
    )
    paths: str = proto.Field(
        proto.STRING,
        number=106438894,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_resource (google.cloud.compute_v1beta.types.FirewallPolicy):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_resource: "FirewallPolicy" = proto.Field(
        proto.MESSAGE,
        number=495049532,
        message="FirewallPolicy",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchNetworkRequest(proto.Message):
    r"""A request message for Networks.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network (str):
            Name of the network to update.
        network_resource (google.cloud.compute_v1beta.types.Network):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    network_resource: "Network" = proto.Field(
        proto.MESSAGE,
        number=122105599,
        message="Network",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_group (str):
            Name of the NodeGroup resource to update.
        node_group_resource (google.cloud.compute_v1beta.types.NodeGroup):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    node_group_resource: "NodeGroup" = proto.Field(
        proto.MESSAGE,
        number=505321899,
        message="NodeGroup",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PatchOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.Patch. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
        security_policy_resource (google.cloud.compute_v1beta.types.SecurityPolicy):
            The body resource for this request
    """

    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_resource: "SecurityPolicy" = proto.Field(
        proto.MESSAGE,
        number=216159612,
        message="SecurityPolicy",
    )


class PatchPacketMirroringRequest(proto.Message):
    r"""A request message for PacketMirrorings.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        packet_mirroring (str):
            Name of the PacketMirroring resource to
            patch.
        packet_mirroring_resource (google.cloud.compute_v1beta.types.PacketMirroring):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    packet_mirroring: str = proto.Field(
        proto.STRING,
        number=22305996,
    )
    packet_mirroring_resource: "PacketMirroring" = proto.Field(
        proto.MESSAGE,
        number=493501985,
        message="PacketMirroring",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchPacketMirroringRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for
    FirewallPolicies.PatchPacketMirroringRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchPacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    NetworkFirewallPolicies.PatchPacketMirroringRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchPartnerMetadataInstanceRequest(proto.Message):
    r"""A request message for Instances.PatchPartnerMetadata. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        partner_metadata_resource (google.cloud.compute_v1beta.types.PartnerMetadata):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    partner_metadata_resource: "PartnerMetadata" = proto.Field(
        proto.MESSAGE,
        number=374784871,
        message="PartnerMetadata",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PatchPerInstanceConfigsInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.PatchPerInstanceConfigs. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        instance_group_managers_patch_per_instance_configs_req_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersPatchPerInstanceConfigsReq):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located. It should conform to
            RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_patch_per_instance_configs_req_resource: "InstanceGroupManagersPatchPerInstanceConfigsReq" = proto.Field(
        proto.MESSAGE,
        number=356650495,
        message="InstanceGroupManagersPatchPerInstanceConfigsReq",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PatchPerInstanceConfigsRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.PatchPerInstanceConfigs. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request,
            should conform to RFC1035.
        region_instance_group_manager_patch_instance_config_req_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagerPatchInstanceConfigReq):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_manager_patch_instance_config_req_resource: "RegionInstanceGroupManagerPatchInstanceConfigReq" = proto.Field(
        proto.MESSAGE,
        number=197682890,
        message="RegionInstanceGroupManagerPatchInstanceConfigReq",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchPublicAdvertisedPrefixeRequest(proto.Message):
    r"""A request message for PublicAdvertisedPrefixes.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_advertised_prefix (str):
            Name of the PublicAdvertisedPrefix resource
            to patch.
        public_advertised_prefix_resource (google.cloud.compute_v1beta.types.PublicAdvertisedPrefix):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_advertised_prefix: str = proto.Field(
        proto.STRING,
        number=101874590,
    )
    public_advertised_prefix_resource: "PublicAdvertisedPrefix" = proto.Field(
        proto.MESSAGE,
        number=233614223,
        message="PublicAdvertisedPrefix",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            Name of the PublicDelegatedPrefix resource to
            patch.
        public_delegated_prefix_resource (google.cloud.compute_v1beta.types.PublicDelegatedPrefix):
            The body resource for this request
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )
    public_delegated_prefix_resource: "PublicDelegatedPrefix" = proto.Field(
        proto.MESSAGE,
        number=47594501,
        message="PublicDelegatedPrefix",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRegionAutoscalerRequest(proto.Message):
    r"""A request message for RegionAutoscalers.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler (str):
            Name of the autoscaler to patch.

            This field is a member of `oneof`_ ``_autoscaler``.
        autoscaler_resource (google.cloud.compute_v1beta.types.Autoscaler):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
        optional=True,
    )
    autoscaler_resource: "Autoscaler" = proto.Field(
        proto.MESSAGE,
        number=207616118,
        message="Autoscaler",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to patch.
        backend_service_resource (google.cloud.compute_v1beta.types.BackendService):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    backend_service_resource: "BackendService" = proto.Field(
        proto.MESSAGE,
        number=347586723,
        message="BackendService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRegionDiskSettingRequest(proto.Message):
    r"""A request message for RegionDiskSettings.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_settings_resource (google.cloud.compute_v1beta.types.DiskSettings):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    disk_settings_resource: "DiskSettings" = proto.Field(
        proto.MESSAGE,
        number=267573896,
        message="DiskSettings",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchRegionHealthCheckRequest(proto.Message):
    r"""A request message for RegionHealthChecks.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to patch.
        health_check_resource (google.cloud.compute_v1beta.types.HealthCheck):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    health_check_resource: "HealthCheck" = proto.Field(
        proto.MESSAGE,
        number=201925032,
        message="HealthCheck",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRegionHealthCheckServiceRequest(proto.Message):
    r"""A request message for RegionHealthCheckServices.Patch. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check_service (str):
            Name of the HealthCheckService to update. The
            name must be 1-63 characters long, and comply
            with RFC1035.
        health_check_service_resource (google.cloud.compute_v1beta.types.HealthCheckService):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check_service: str = proto.Field(
        proto.STRING,
        number=408374747,
    )
    health_check_service_resource: "HealthCheckService" = proto.Field(
        proto.MESSAGE,
        number=477367794,
        message="HealthCheckService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.Patch. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the instance group manager.
        instance_group_manager_resource (google.cloud.compute_v1beta.types.InstanceGroupManager):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_manager_resource: "InstanceGroupManager" = proto.Field(
        proto.MESSAGE,
        number=261063946,
        message="InstanceGroupManager",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for RegionNetworkFirewallPolicies.Patch.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_resource (google.cloud.compute_v1beta.types.FirewallPolicy):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_resource: "FirewallPolicy" = proto.Field(
        proto.MESSAGE,
        number=495049532,
        message="FirewallPolicy",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
        security_policy_resource (google.cloud.compute_v1beta.types.SecurityPolicy):
            The body resource for this request
        update_mask (str):
            Indicates fields to be cleared as part of
            this request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_resource: "SecurityPolicy" = proto.Field(
        proto.MESSAGE,
        number=216159612,
        message="SecurityPolicy",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchRegionSnapshotSettingRequest(proto.Message):
    r"""A request message for RegionSnapshotSettings.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot_settings_resource (google.cloud.compute_v1beta.types.SnapshotSettings):
            The body resource for this request
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot_settings_resource: "SnapshotSettings" = proto.Field(
        proto.MESSAGE,
        number=357664495,
        message="SnapshotSettings",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchRegionSslPolicyRequest(proto.Message):
    r"""A request message for RegionSslPolicies.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy (str):
            Name of the SSL policy to update. The name
            must be 1-63 characters long, and comply with
            RFC1035.
        ssl_policy_resource (google.cloud.compute_v1beta.types.SslPolicy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
    )
    ssl_policy_resource: "SslPolicy" = proto.Field(
        proto.MESSAGE,
        number=274891848,
        message="SslPolicy",
    )


class PatchRegionTargetHttpsProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpsProxies.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to
            patch.
        target_https_proxy_resource (google.cloud.compute_v1beta.types.TargetHttpsProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )
    target_https_proxy_resource: "TargetHttpsProxy" = proto.Field(
        proto.MESSAGE,
        number=433657473,
        message="TargetHttpsProxy",
    )


class PatchRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            begin_interface: MixerMutationRequestBuilder Request ID to
            support idempotency.

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap resource to patch.
        url_map_resource (google.cloud.compute_v1beta.types.UrlMap):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )
    url_map_resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=168675425,
        message="UrlMap",
    )


class PatchResourcePolicyRequest(proto.Message):
    r"""A request message for ResourcePolicies.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource_policy (str):
            Id of the resource policy to patch.
        resource_policy_resource (google.cloud.compute_v1beta.types.ResourcePolicy):
            The body resource for this request
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource_policy: str = proto.Field(
        proto.STRING,
        number=159240835,
    )
    resource_policy_resource: "ResourcePolicy" = proto.Field(
        proto.MESSAGE,
        number=76826186,
        message="ResourcePolicy",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchRoutePolicyRouterRequest(proto.Message):
    r"""A request message for Routers.PatchRoutePolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        route_policy_resource (google.cloud.compute_v1beta.types.RoutePolicy):
            The body resource for this request
        router (str):
            Name of the Router resource where Route
            Policy is defined.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    route_policy_resource: "RoutePolicy" = proto.Field(
        proto.MESSAGE,
        number=116219525,
        message="RoutePolicy",
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class PatchRouterRequest(proto.Message):
    r"""A request message for Routers.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        router (str):
            Name of the Router resource to patch.
        router_resource (google.cloud.compute_v1beta.types.Router):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )
    router_resource: "Router" = proto.Field(
        proto.MESSAGE,
        number=155222084,
        message="Router",
    )


class PatchRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.PatchRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.PatchRule. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRuleOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for OrganizationSecurityPolicies.PatchRule.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
        security_policy_rule_resource (google.cloud.compute_v1beta.types.SecurityPolicyRule):
            The body resource for this request
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_rule_resource: "SecurityPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=402693443,
        message="SecurityPolicyRule",
    )


class PatchRuleRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.PatchRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        firewall_policy_rule_resource (google.cloud.compute_v1beta.types.FirewallPolicyRule):
            The body resource for this request
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    firewall_policy_rule_resource: "FirewallPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=250523523,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class PatchRuleRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.PatchRule. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        security_policy (str):
            Name of the security policy to update.
        security_policy_rule_resource (google.cloud.compute_v1beta.types.SecurityPolicyRule):
            The body resource for this request
        update_mask (str):
            Indicates fields to be cleared as part of
            this request.

            This field is a member of `oneof`_ ``_update_mask``.
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_rule_resource: "SecurityPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=402693443,
        message="SecurityPolicyRule",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class PatchRuleSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.PatchRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to patch.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        security_policy (str):
            Name of the security policy to update.
        security_policy_rule_resource (google.cloud.compute_v1beta.types.SecurityPolicyRule):
            The body resource for this request
        update_mask (str):
            Indicates fields to be cleared as part of
            this request.

            This field is a member of `oneof`_ ``_update_mask``.
        validate_only (bool):
            If true, the request will not be committed.

            This field is a member of `oneof`_ ``_validate_only``.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_rule_resource: "SecurityPolicyRule" = proto.Field(
        proto.MESSAGE,
        number=402693443,
        message="SecurityPolicyRule",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )


class PatchSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
        security_policy_resource (google.cloud.compute_v1beta.types.SecurityPolicy):
            The body resource for this request
        update_mask (str):
            Indicates fields to be cleared as part of
            this request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )
    security_policy_resource: "SecurityPolicy" = proto.Field(
        proto.MESSAGE,
        number=216159612,
        message="SecurityPolicy",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchServiceAttachmentRequest(proto.Message):
    r"""A request message for ServiceAttachments.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region scoping this request and should
            conform to RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        service_attachment (str):
            The resource id of the ServiceAttachment to
            patch. It should conform to RFC1035 resource
            name or be a string form on an unsigned long
            number.
        service_attachment_resource (google.cloud.compute_v1beta.types.ServiceAttachment):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    service_attachment: str = proto.Field(
        proto.STRING,
        number=338957549,
    )
    service_attachment_resource: "ServiceAttachment" = proto.Field(
        proto.MESSAGE,
        number=472980256,
        message="ServiceAttachment",
    )


class PatchSnapshotSettingRequest(proto.Message):
    r"""A request message for SnapshotSettingsService.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        snapshot_settings_resource (google.cloud.compute_v1beta.types.SnapshotSettings):
            The body resource for this request
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    snapshot_settings_resource: "SnapshotSettings" = proto.Field(
        proto.MESSAGE,
        number=357664495,
        message="SnapshotSettings",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class PatchSslPolicyRequest(proto.Message):
    r"""A request message for SslPolicies.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy (str):
            Name of the SSL policy to update. The name
            must be 1-63 characters long, and comply with
            RFC1035.
        ssl_policy_resource (google.cloud.compute_v1beta.types.SslPolicy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
    )
    ssl_policy_resource: "SslPolicy" = proto.Field(
        proto.MESSAGE,
        number=274891848,
        message="SslPolicy",
    )


class PatchSubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        drain_timeout_seconds (int):
            The drain timeout specifies the upper bound in seconds on
            the amount of time allowed to drain connections from the
            current ACTIVE subnetwork to the current BACKUP subnetwork.
            The drain timeout is only applicable when the following
            conditions are true: - the subnetwork being patched has
            purpose = INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork
            being patched has role = BACKUP - the patch request is
            setting the role to ACTIVE. Note that after this patch
            operation the roles of the ACTIVE and BACKUP subnetworks
            will be swapped.

            This field is a member of `oneof`_ ``_drain_timeout_seconds``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        subnetwork (str):
            Name of the Subnetwork resource to patch.
        subnetwork_resource (google.cloud.compute_v1beta.types.Subnetwork):
            The body resource for this request
    """

    drain_timeout_seconds: int = proto.Field(
        proto.INT32,
        number=357707098,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
    )
    subnetwork_resource: "Subnetwork" = proto.Field(
        proto.MESSAGE,
        number=42233151,
        message="Subnetwork",
    )


class PatchTargetGrpcProxyRequest(proto.Message):
    r"""A request message for TargetGrpcProxies.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_grpc_proxy (str):
            Name of the TargetGrpcProxy resource to
            patch.
        target_grpc_proxy_resource (google.cloud.compute_v1beta.types.TargetGrpcProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_grpc_proxy: str = proto.Field(
        proto.STRING,
        number=5020283,
    )
    target_grpc_proxy_resource: "TargetGrpcProxy" = proto.Field(
        proto.MESSAGE,
        number=328922450,
        message="TargetGrpcProxy",
    )


class PatchTargetHttpProxyRequest(proto.Message):
    r"""A request message for TargetHttpProxies.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_http_proxy (str):
            Name of the TargetHttpProxy resource to
            patch.
        target_http_proxy_resource (google.cloud.compute_v1beta.types.TargetHttpProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_http_proxy: str = proto.Field(
        proto.STRING,
        number=206872421,
    )
    target_http_proxy_resource: "TargetHttpProxy" = proto.Field(
        proto.MESSAGE,
        number=24696744,
        message="TargetHttpProxy",
    )


class PatchTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.Patch. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to
            patch.
        target_https_proxy_resource (google.cloud.compute_v1beta.types.TargetHttpsProxy):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )
    target_https_proxy_resource: "TargetHttpsProxy" = proto.Field(
        proto.MESSAGE,
        number=433657473,
        message="TargetHttpsProxy",
    )


class PatchUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap resource to patch.
        url_map_resource (google.cloud.compute_v1beta.types.UrlMap):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )
    url_map_resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=168675425,
        message="UrlMap",
    )


class PatchWireGroupRequest(proto.Message):
    r"""A request message for WireGroups.Patch. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cross_site_network (str):

        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests. Specify a
            unique request ID so that if you must retry your request,
            the server will know to ignore the request if it has already
            been completed. For example, consider a situation where you
            make an initial request and the request times out. If you
            make the request again with the same request ID, the server
            can check if original operation with the same request ID was
            received, and if so, will ignore the second request. This
            prevents clients from accidentally creating duplicate
            commitments. The request ID must be a valid UUID with the
            exception that zero UUID is not supported (
            00000000-0000-0000-0000-000000000000). end_interface:
            MixerMutationRequestBuilder

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        validate_only (bool):
            [Input Only] Validate the new configuration, but don't
            update it.

            This field is a member of `oneof`_ ``_validate_only``.
        wire_group (str):
            Name of the WireGroups resource to patch.
        wire_group_resource (google.cloud.compute_v1beta.types.WireGroup):
            The body resource for this request
    """

    cross_site_network: str = proto.Field(
        proto.STRING,
        number=108192469,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    validate_only: bool = proto.Field(
        proto.BOOL,
        number=242744629,
        optional=True,
    )
    wire_group: str = proto.Field(
        proto.STRING,
        number=122540613,
    )
    wire_group_resource: "WireGroup" = proto.Field(
        proto.MESSAGE,
        number=117104840,
        message="WireGroup",
    )


class PathMatcher(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        default_custom_error_response_policy (google.cloud.compute_v1beta.types.CustomErrorResponsePolicy):
            defaultCustomErrorResponsePolicy specifies how the Load
            Balancer returns error responses when BackendServiceor
            BackendBucket responds with an error. This policy takes
            effect at the PathMatcher level and applies only when no
            policy has been defined for the error code at lower levels
            like RouteRule and PathRule within this PathMatcher. If an
            error code does not have a policy defined in
            defaultCustomErrorResponsePolicy, then a policy defined for
            the error code in UrlMap.defaultCustomErrorResponsePolicy
            takes effect. For example, consider a UrlMap with the
            following configuration: -
            UrlMap.defaultCustomErrorResponsePolicy is configured with
            policies for 5xx and 4xx errors - A RouteRule for
            /coming_soon/ is configured for the error code 404. If the
            request is for www.myotherdomain.com and a 404 is
            encountered, the policy under
            UrlMap.defaultCustomErrorResponsePolicy takes effect. If a
            404 response is encountered for the request
            www.example.com/current_events/, the pathMatcher's policy
            takes effect. If however, the request for
            www.example.com/coming_soon/ encounters a 404, the policy in
            RouteRule.customErrorResponsePolicy takes effect. If any of
            the requests in this example encounter a 500 error code, the
            policy at UrlMap.defaultCustomErrorResponsePolicy takes
            effect. When used in conjunction with
            pathMatcher.defaultRouteAction.retryPolicy, retries take
            precedence. Only once all retries are exhausted, the
            defaultCustomErrorResponsePolicy is applied. While
            attempting a retry, if load balancer is successful in
            reaching the service, the defaultCustomErrorResponsePolicy
            is ignored and the response from the service is returned to
            the client. defaultCustomErrorResponsePolicy is supported
            only for global external Application Load Balancers.

            This field is a member of `oneof`_ ``_default_custom_error_response_policy``.
        default_route_action (google.cloud.compute_v1beta.types.HttpRouteAction):
            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's defaultRouteAction.

            This field is a member of `oneof`_ ``_default_route_action``.
        default_service (str):
            The full or partial URL to the BackendService resource. This
            URL is used if none of the pathRules or routeRules defined
            by this PathMatcher are matched. For example, the following
            are all valid URLs to a BackendService resource: -
            https://www.googleapis.com/compute/v1/projects/project
            /global/backendServices/backendService -
            compute/v1/projects/project/global/backendServices/backendService
            - global/backendServices/backendService If
            defaultRouteAction is also specified, advanced routing
            actions, such as URL rewrites, take effect before sending
            the request to the backend. 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

            This field is a member of `oneof`_ ``_default_service``.
        default_url_redirect (google.cloud.compute_v1beta.types.HttpRedirectAction):
            When none of the specified pathRules or
            routeRules 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.

            This field is a member of `oneof`_ ``_default_url_redirect``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        header_action (google.cloud.compute_v1beta.types.HttpHeaderAction):
            Specifies changes to request and response
            headers that need to take effect for the
            selected backend service. HeaderAction specified
            here are applied after the matching
            HttpRouteRule HeaderAction and before the
            HeaderAction in the UrlMap HeaderAction is not
            supported for load balancers that have their
            loadBalancingScheme set to EXTERNAL. Not
            supported when the URL map is bound to a target
            gRPC proxy that has validateForProxyless field
            set to true.

            This field is a member of `oneof`_ ``_header_action``.
        name (str):
            The name to which this PathMatcher is
            referred by the HostRule.

            This field is a member of `oneof`_ ``_name``.
        path_rules (MutableSequence[google.cloud.compute_v1beta.types.PathRule]):
            The list of path rules. Use this list instead of routeRules
            when routing based on simple path matching is all that's
            required. The order by which path rules are specified does
            not matter. Matches are always done on the
            longest-path-first basis. For example: a pathRule with a
            path /a/b/c/\* will match before /a/b/\* irrespective of the
            order in which those paths appear in this list. Within a
            given pathMatcher, only one of pathRules or routeRules must
            be set.
        route_rules (MutableSequence[google.cloud.compute_v1beta.types.HttpRouteRule]):
            The list of HTTP route rules. Use this list
            instead of pathRules when advanced route
            matching and routing actions are desired.
            routeRules are evaluated in order of priority,
            from the lowest to highest number. Within a
            given pathMatcher, you can set only one of
            pathRules or routeRules.
    """

    default_custom_error_response_policy: "CustomErrorResponsePolicy" = proto.Field(
        proto.MESSAGE,
        number=81266089,
        optional=True,
        message="CustomErrorResponsePolicy",
    )
    default_route_action: "HttpRouteAction" = proto.Field(
        proto.MESSAGE,
        number=378919466,
        optional=True,
        message="HttpRouteAction",
    )
    default_service: str = proto.Field(
        proto.STRING,
        number=370242231,
        optional=True,
    )
    default_url_redirect: "HttpRedirectAction" = proto.Field(
        proto.MESSAGE,
        number=359503338,
        optional=True,
        message="HttpRedirectAction",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    header_action: "HttpHeaderAction" = proto.Field(
        proto.MESSAGE,
        number=328077352,
        optional=True,
        message="HttpHeaderAction",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    path_rules: MutableSequence["PathRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=104439901,
        message="PathRule",
    )
    route_rules: MutableSequence["HttpRouteRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=376292225,
        message="HttpRouteRule",
    )


class PathRule(proto.Message):
    r"""A path-matching rule for a URL. If matched, will use the
    specified BackendService to handle the traffic arriving at this
    URL.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        custom_error_response_policy (google.cloud.compute_v1beta.types.CustomErrorResponsePolicy):
            customErrorResponsePolicy specifies how the Load Balancer
            returns error responses when BackendServiceor BackendBucket
            responds with an error. If a policy for an error code is not
            configured for the PathRule, a policy for the error code
            configured in pathMatcher.defaultCustomErrorResponsePolicy
            is applied. If one is not specified in
            pathMatcher.defaultCustomErrorResponsePolicy, the policy
            configured in UrlMap.defaultCustomErrorResponsePolicy takes
            effect. For example, consider a UrlMap with the following
            configuration: - UrlMap.defaultCustomErrorResponsePolicy are
            configured with policies for 5xx and 4xx errors - A PathRule
            for /coming_soon/ is configured for the error code 404. If
            the request is for www.myotherdomain.com and a 404 is
            encountered, the policy under
            UrlMap.defaultCustomErrorResponsePolicy takes effect. If a
            404 response is encountered for the request
            www.example.com/current_events/, the pathMatcher's policy
            takes effect. If however, the request for
            www.example.com/coming_soon/ encounters a 404, the policy in
            PathRule.customErrorResponsePolicy takes effect. If any of
            the requests in this example encounter a 500 error code, the
            policy at UrlMap.defaultCustomErrorResponsePolicy takes
            effect. customErrorResponsePolicy is supported only for
            global external Application Load Balancers.

            This field is a member of `oneof`_ ``_custom_error_response_policy``.
        paths (MutableSequence[str]):
            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.
        route_action (google.cloud.compute_v1beta.types.HttpRouteAction):
            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 or
            routeAction.weightedBackendService can be set.
            URL maps for classic Application Load Balancers
            only support the urlRewrite action within a path
            rule's routeAction.

            This field is a member of `oneof`_ ``_route_action``.
        service (str):
            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
            or routeAction.weightedBackendService can be
            set.

            This field is a member of `oneof`_ ``_service``.
        url_redirect (google.cloud.compute_v1beta.types.HttpRedirectAction):
            When a path pattern is matched, the request
            is redirected to a URL specified by urlRedirect.
            Only one of urlRedirect, service or
            routeAction.weightedBackendService can be set.
            Not supported when the URL map is bound to a
            target gRPC proxy.

            This field is a member of `oneof`_ ``_url_redirect``.
    """

    custom_error_response_policy: "CustomErrorResponsePolicy" = proto.Field(
        proto.MESSAGE,
        number=202816619,
        optional=True,
        message="CustomErrorResponsePolicy",
    )
    paths: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=106438894,
    )
    route_action: "HttpRouteAction" = proto.Field(
        proto.MESSAGE,
        number=424563948,
        optional=True,
        message="HttpRouteAction",
    )
    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )
    url_redirect: "HttpRedirectAction" = proto.Field(
        proto.MESSAGE,
        number=405147820,
        optional=True,
        message="HttpRedirectAction",
    )


class PerInstanceConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        name (str):
            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.

            This field is a member of `oneof`_ ``_name``.
        preserved_state (google.cloud.compute_v1beta.types.PreservedState):
            The intended preserved state for the given
            instance. Does not contain preserved state
            generated from a stateful policy.

            This field is a member of `oneof`_ ``_preserved_state``.
        status (str):
            The status of applying this per-instance
            configuration on the corresponding managed
            instance. Check the Status enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class Status(proto.Enum):
        r"""The status of applying this per-instance configuration on the
        corresponding managed instance.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            APPLYING (352003508):
                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 (528602024):
                The per-instance configuration deletion is
                being applied on the instance, possibly waiting
                for the instance to, for example, REFRESH.
            EFFECTIVE (244201863):
                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 (2402104):
                *[Default]* The default status, when no per-instance
                configuration exists.
            UNAPPLIED (483935140):
                The per-instance configuration is set on an
                instance but not been applied yet.
            UNAPPLIED_DELETION (313956873):
                The per-instance configuration has been
                deleted, but the deletion is not yet applied.
        """
        UNDEFINED_STATUS = 0
        APPLYING = 352003508
        DELETING = 528602024
        EFFECTIVE = 244201863
        NONE = 2402104
        UNAPPLIED = 483935140
        UNAPPLIED_DELETION = 313956873

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    preserved_state: "PreservedState" = proto.Field(
        proto.MESSAGE,
        number=2634026,
        optional=True,
        message="PreservedState",
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class PerformMaintenanceInstanceRequest(proto.Message):
    r"""A request message for Instances.PerformMaintenance. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PerformMaintenanceNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.PerformMaintenance. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_group (str):
            Name of the node group scoping this request.
        node_groups_perform_maintenance_request_resource (google.cloud.compute_v1beta.types.NodeGroupsPerformMaintenanceRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    node_groups_perform_maintenance_request_resource: "NodeGroupsPerformMaintenanceRequest" = proto.Field(
        proto.MESSAGE,
        number=185310294,
        message="NodeGroupsPerformMaintenanceRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PerformMaintenanceReservationBlockRequest(proto.Message):
    r"""A request message for ReservationBlocks.PerformMaintenance.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        reservation (str):
            The name of the reservation. Name should
            conform to RFC1035 or be a resource ID.
        reservation_block (str):
            The name of the reservation block. Name
            should conform to RFC1035 or be a resource ID.
        reservations_blocks_perform_maintenance_request_resource (google.cloud.compute_v1beta.types.ReservationsBlocksPerformMaintenanceRequest):
            The body resource for this request
        zone (str):
            Name of the zone for this request. Zone name
            should conform to RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    reservation_block: str = proto.Field(
        proto.STRING,
        number=532832858,
    )
    reservations_blocks_perform_maintenance_request_resource: "ReservationsBlocksPerformMaintenanceRequest" = proto.Field(
        proto.MESSAGE,
        number=485823625,
        message="ReservationsBlocksPerformMaintenanceRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class PerformMaintenanceReservationRequest(proto.Message):
    r"""A request message for Reservations.PerformMaintenance. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        reservation (str):
            The name of the reservation. Name should
            conform to RFC1035 or be a resource ID.
        reservations_perform_maintenance_request_resource (google.cloud.compute_v1beta.types.ReservationsPerformMaintenanceRequest):
            The body resource for this request
        zone (str):
            Name of the zone for this request. Zone name
            should conform to RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    reservations_perform_maintenance_request_resource: "ReservationsPerformMaintenanceRequest" = proto.Field(
        proto.MESSAGE,
        number=29702816,
        message="ReservationsPerformMaintenanceRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class Policy(proto.Message):
    r"""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/>`__.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        audit_configs (MutableSequence[google.cloud.compute_v1beta.types.AuditConfig]):
            Specifies cloud audit logging configuration
            for this policy.
        bindings (MutableSequence[google.cloud.compute_v1beta.types.Binding]):
            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``.
        etag (str):
            ``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.

            This field is a member of `oneof`_ ``_etag``.
        iam_owned (bool):

            This field is a member of `oneof`_ ``_iam_owned``.
        version (int):
            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>`__.

            This field is a member of `oneof`_ ``_version``.
    """

    audit_configs: MutableSequence["AuditConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=328080653,
        message="AuditConfig",
    )
    bindings: MutableSequence["Binding"] = proto.RepeatedField(
        proto.MESSAGE,
        number=403251854,
        message="Binding",
    )
    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    iam_owned: bool = proto.Field(
        proto.BOOL,
        number=450566203,
        optional=True,
    )
    version: int = proto.Field(
        proto.INT32,
        number=351608024,
        optional=True,
    )


class PreconfiguredWafSet(proto.Message):
    r"""

    Attributes:
        expression_sets (MutableSequence[google.cloud.compute_v1beta.types.WafExpressionSet]):
            List of entities that are currently supported
            for WAF rules.
    """

    expression_sets: MutableSequence["WafExpressionSet"] = proto.RepeatedField(
        proto.MESSAGE,
        number=474011032,
        message="WafExpressionSet",
    )


class PreservedState(proto.Message):
    r"""Preserved state for a given instance.

    Attributes:
        disks (MutableMapping[str, google.cloud.compute_v1beta.types.PreservedStatePreservedDisk]):
            Preserved disks defined for this instance.
            This map is keyed with the device names of the
            disks.
        external_i_ps (MutableMapping[str, google.cloud.compute_v1beta.types.PreservedStatePreservedNetworkIp]):
            Preserved external IPs defined for this
            instance. This map is keyed with the name of the
            network interface.
        internal_i_ps (MutableMapping[str, google.cloud.compute_v1beta.types.PreservedStatePreservedNetworkIp]):
            Preserved internal IPs defined for this
            instance. This map is keyed with the name of the
            network interface.
        metadata (MutableMapping[str, str]):
            Preserved metadata defined for this instance.
    """

    disks: MutableMapping[str, "PreservedStatePreservedDisk"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=95594102,
        message="PreservedStatePreservedDisk",
    )
    external_i_ps: MutableMapping[
        str, "PreservedStatePreservedNetworkIp"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=532687245,
        message="PreservedStatePreservedNetworkIp",
    )
    internal_i_ps: MutableMapping[
        str, "PreservedStatePreservedNetworkIp"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=215731675,
        message="PreservedStatePreservedNetworkIp",
    )
    metadata: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=86866735,
    )


class PreservedStatePreservedDisk(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_delete (str):
            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. Check the AutoDelete
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_auto_delete``.
        mode (str):
            The mode in which to attach this disk, either READ_WRITE or
            READ_ONLY. If not specified, the default is to attach the
            disk in READ_WRITE mode. Check the Mode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_mode``.
        source (str):
            The URL of the disk resource that is stateful
            and should be attached to the VM instance.

            This field is a member of `oneof`_ ``_source``.
    """

    class AutoDelete(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_AUTO_DELETE (0):
                A value indicating that the enum field is not
                set.
            NEVER (74175084):
                No description available.
            ON_PERMANENT_INSTANCE_DELETION (95727719):
                No description available.
        """
        UNDEFINED_AUTO_DELETE = 0
        NEVER = 74175084
        ON_PERMANENT_INSTANCE_DELETION = 95727719

    class Mode(proto.Enum):
        r"""The mode in which to attach this disk, either READ_WRITE or
        READ_ONLY. If not specified, the default is to attach the disk in
        READ_WRITE mode.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            READ_ONLY (91950261):
                Attaches this disk in read-only mode. Multiple VM instances
                can use a disk in READ_ONLY mode at a time.
            READ_WRITE (173607894):
                *[Default]* Attaches this disk in READ_WRITE mode. Only one
                VM instance at a time can be attached to a disk in
                READ_WRITE mode.
        """
        UNDEFINED_MODE = 0
        READ_ONLY = 91950261
        READ_WRITE = 173607894

    auto_delete: str = proto.Field(
        proto.STRING,
        number=464761403,
        optional=True,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )
    source: str = proto.Field(
        proto.STRING,
        number=177235995,
        optional=True,
    )


class PreservedStatePreservedNetworkIp(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_delete (str):
            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. Check the AutoDelete enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_auto_delete``.
        ip_address (google.cloud.compute_v1beta.types.PreservedStatePreservedNetworkIpIpAddress):
            Ip address representation

            This field is a member of `oneof`_ ``_ip_address``.
    """

    class AutoDelete(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_AUTO_DELETE (0):
                A value indicating that the enum field is not
                set.
            NEVER (74175084):
                No description available.
            ON_PERMANENT_INSTANCE_DELETION (95727719):
                No description available.
        """
        UNDEFINED_AUTO_DELETE = 0
        NEVER = 74175084
        ON_PERMANENT_INSTANCE_DELETION = 95727719

    auto_delete: str = proto.Field(
        proto.STRING,
        number=464761403,
        optional=True,
    )
    ip_address: "PreservedStatePreservedNetworkIpIpAddress" = proto.Field(
        proto.MESSAGE,
        number=406272220,
        optional=True,
        message="PreservedStatePreservedNetworkIpIpAddress",
    )


class PreservedStatePreservedNetworkIpIpAddress(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        address (str):
            The URL of the reservation for this IP
            address.

            This field is a member of `oneof`_ ``_address``.
        literal (str):
            An IPv4 internal network address to assign to
            the instance for this network interface.

            This field is a member of `oneof`_ ``_literal``.
    """

    address: str = proto.Field(
        proto.STRING,
        number=462920692,
        optional=True,
    )
    literal: str = proto.Field(
        proto.STRING,
        number=182460591,
        optional=True,
    )


class PreviewFeature(proto.Message):
    r"""Represents a single Google Compute Engine preview feature.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        activation_status (str):
            Specifies whether the feature is enabled or
            disabled. Check the ActivationStatus enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_activation_status``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            [Output Only] Description of the feature.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output only] The type of the feature. Always
            "compute#previewFeature" for preview features.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the feature.

            This field is a member of `oneof`_ ``_name``.
        rollout_operation (google.cloud.compute_v1beta.types.PreviewFeatureRolloutOperation):
            Rollout operation of the feature.

            This field is a member of `oneof`_ ``_rollout_operation``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (google.cloud.compute_v1beta.types.PreviewFeatureStatus):
            [Output only] Status of the feature.

            This field is a member of `oneof`_ ``_status``.
    """

    class ActivationStatus(proto.Enum):
        r"""Specifies whether the feature is enabled or disabled.

        Values:
            UNDEFINED_ACTIVATION_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACTIVATION_STATE_UNSPECIFIED (632160):
                No description available.
            DISABLED (516696700):
                No description available.
            ENABLED (182130465):
                No description available.
        """
        UNDEFINED_ACTIVATION_STATUS = 0
        ACTIVATION_STATE_UNSPECIFIED = 632160
        DISABLED = 516696700
        ENABLED = 182130465

    activation_status: str = proto.Field(
        proto.STRING,
        number=71960379,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    rollout_operation: "PreviewFeatureRolloutOperation" = proto.Field(
        proto.MESSAGE,
        number=486746201,
        optional=True,
        message="PreviewFeatureRolloutOperation",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: "PreviewFeatureStatus" = proto.Field(
        proto.MESSAGE,
        number=181260274,
        optional=True,
        message="PreviewFeatureStatus",
    )


class PreviewFeatureList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.PreviewFeature]):
            A list of PreviewFeature resources.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["PreviewFeature"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="PreviewFeature",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class PreviewFeatureRolloutOperation(proto.Message):
    r"""Represents the rollout operation

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        rollout_input (google.cloud.compute_v1beta.types.PreviewFeatureRolloutOperationRolloutInput):

            This field is a member of `oneof`_ ``_rollout_input``.
        rollout_status (google.cloud.compute_v1beta.types.PreviewFeatureRolloutOperationRolloutStatus):

            This field is a member of `oneof`_ ``_rollout_status``.
    """

    rollout_input: "PreviewFeatureRolloutOperationRolloutInput" = proto.Field(
        proto.MESSAGE,
        number=265745340,
        optional=True,
        message="PreviewFeatureRolloutOperationRolloutInput",
    )
    rollout_status: "PreviewFeatureRolloutOperationRolloutStatus" = proto.Field(
        proto.MESSAGE,
        number=476426816,
        optional=True,
        message="PreviewFeatureRolloutOperationRolloutStatus",
    )


class PreviewFeatureRolloutOperationRolloutInput(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            The name of the rollout plan Ex.
            organizations//locations/global/rolloutPlans/
            Ex. folders//locations/global/rolloutPlans/ Ex.
            projects//locations/global/rolloutPlans/.

            This field is a member of `oneof`_ ``_name``.
        predefined_rollout_plan (str):
            Predefined rollout plan.
            Check the PredefinedRolloutPlan enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_predefined_rollout_plan``.
        retry_uuid (str):
            The UUID of the retry action. Only needed if
            this is a retry for an existing rollout. This
            can be used after the user canceled a rollout
            and want to retry it with no changes.

            This field is a member of `oneof`_ ``_retry_uuid``.
    """

    class PredefinedRolloutPlan(proto.Enum):
        r"""Predefined rollout plan.

        Values:
            UNDEFINED_PREDEFINED_ROLLOUT_PLAN (0):
                A value indicating that the enum field is not
                set.
            ROLLOUT_PLAN_FAST_ROLLOUT (167808726):
                No description available.
            ROLLOUT_PLAN_TWO_DAY_ROLLOUT (349866771):
                No description available.
            ROLLOUT_PLAN_UNSPECIFIED (144511983):
                No description available.
        """
        UNDEFINED_PREDEFINED_ROLLOUT_PLAN = 0
        ROLLOUT_PLAN_FAST_ROLLOUT = 167808726
        ROLLOUT_PLAN_TWO_DAY_ROLLOUT = 349866771
        ROLLOUT_PLAN_UNSPECIFIED = 144511983

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    predefined_rollout_plan: str = proto.Field(
        proto.STRING,
        number=364023440,
        optional=True,
    )
    retry_uuid: str = proto.Field(
        proto.STRING,
        number=472838898,
        optional=True,
    )


class PreviewFeatureRolloutOperationRolloutStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ongoing_rollouts (MutableSequence[google.cloud.compute_v1beta.types.PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata]):
            Output only. The ongoing rollout resources.
            There can be multiple ongoing rollouts for a
            resource.
        previous_rollout (google.cloud.compute_v1beta.types.PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata):
            Output only. The last completed rollout
            resource. This field will not be populated until
            the first rollout is completed.

            This field is a member of `oneof`_ ``_previous_rollout``.
    """

    ongoing_rollouts: MutableSequence[
        "PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=389110054,
        message="PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata",
    )
    previous_rollout: "PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata" = (
        proto.Field(
            proto.MESSAGE,
            number=375749737,
            optional=True,
            message="PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata",
        )
    )


class PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        rollout (str):
            The name of the rollout Ex.
            organizations//locations/global/rollouts/ Ex.
            folders//locations/global/rollouts/ Ex.
            projects//locations/global/rollouts/.

            This field is a member of `oneof`_ ``_rollout``.
        rollout_plan (str):
            The name of the rollout plan Ex.
            organizations//locations/global/rolloutPlans/
            Ex. folders//locations/global/rolloutPlans/ Ex.
            projects//locations/global/rolloutPlans/.

            This field is a member of `oneof`_ ``_rollout_plan``.
        status (google.cloud.compute_v1beta.types.PreviewFeatureStatus):
            The status of the rollout.

            This field is a member of `oneof`_ ``_status``.
    """

    rollout: str = proto.Field(
        proto.STRING,
        number=303366577,
        optional=True,
    )
    rollout_plan: str = proto.Field(
        proto.STRING,
        number=459057399,
        optional=True,
    )
    status: "PreviewFeatureStatus" = proto.Field(
        proto.MESSAGE,
        number=181260274,
        optional=True,
        message="PreviewFeatureStatus",
    )


class PreviewFeatureStatus(proto.Message):
    r"""[Output Only] The status of the feature.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            [Output Only] The description of the feature.

            This field is a member of `oneof`_ ``_description``.
        release_status (google.cloud.compute_v1beta.types.PreviewFeatureStatusReleaseStatus):

            This field is a member of `oneof`_ ``_release_status``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    release_status: "PreviewFeatureStatusReleaseStatus" = proto.Field(
        proto.MESSAGE,
        number=508026666,
        optional=True,
        message="PreviewFeatureStatusReleaseStatus",
    )


class PreviewFeatureStatusReleaseStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        stage (str):
            [Output Only] The stage of the feature. Check the Stage enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_stage``.
        update_date (google.cloud.compute_v1beta.types.Date):
            Output only. The last date when a feature
            transitioned between ReleaseStatuses.

            This field is a member of `oneof`_ ``_update_date``.
    """

    class Stage(proto.Enum):
        r"""[Output Only] The stage of the feature.

        Values:
            UNDEFINED_STAGE (0):
                A value indicating that the enum field is not
                set.
            DEPRECATED (463360435):
                No description available.
            GA (2266):
                No description available.
            INTERNAL (279295677):
                Exclude until there's product requirements.
            PREVIEW (399798184):
                No description available.
            STAGE_UNSPECIFIED (63695670):
                No description available.
        """
        UNDEFINED_STAGE = 0
        DEPRECATED = 463360435
        GA = 2266
        INTERNAL = 279295677
        PREVIEW = 399798184
        STAGE_UNSPECIFIED = 63695670

    stage: str = proto.Field(
        proto.STRING,
        number=109757182,
        optional=True,
    )
    update_date: "Date" = proto.Field(
        proto.MESSAGE,
        number=499811684,
        optional=True,
        message="Date",
    )


class PreviewRouterRequest(proto.Message):
    r"""A request message for Routers.Preview. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        router (str):
            Name of the Router resource to query.
        router_resource (google.cloud.compute_v1beta.types.Router):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )
    router_resource: "Router" = proto.Field(
        proto.MESSAGE,
        number=155222084,
        message="Router",
    )


class Project(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cloud_armor_tier (str):
            [Output Only] The Cloud Armor tier for this project. It can
            be one of the following values: CA_STANDARD,
            CA_ENTERPRISE_PAYGO. If this field is not specified, it is
            assumed to be CA_STANDARD. Check the CloudArmorTier enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_cloud_armor_tier``.
        common_instance_metadata (google.cloud.compute_v1beta.types.Metadata):
            Metadata key/value pairs available to all
            instances contained in this project. See Custom
            metadata for more information.

            This field is a member of `oneof`_ ``_common_instance_metadata``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        default_network_tier (str):
            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. Check the DefaultNetworkTier enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_default_network_tier``.
        default_service_account (str):
            [Output Only] Default service account used by VMs running in
            this project.

            This field is a member of `oneof`_ ``_default_service_account``.
        description (str):
            An optional textual description of the
            resource.

            This field is a member of `oneof`_ ``_description``.
        enabled_features (MutableSequence[str]):
            An optional list of restricted features
            enabled for use on this project.
        id (int):
            [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.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always compute#project
            for projects.

            This field is a member of `oneof`_ ``_kind``.
        managed_protection_tier (str):
            [Output Only] The Cloud Armor Managed Protection (CAMP) tier
            for this project. It can be one of the following values:
            CA_STANDARD, CAMP_PLUS_PAYGO. If this field is not
            specified, it is assumed to be CA_STANDARD. Check the
            ManagedProtectionTier enum for the list of possible values.

            This field is a member of `oneof`_ ``_managed_protection_tier``.
        name (str):
            The project ID. For example:
            my-example-project. Use the project ID to make
            requests to Compute Engine.

            This field is a member of `oneof`_ ``_name``.
        quotas (MutableSequence[google.cloud.compute_v1beta.types.Quota]):
            [Output Only] Quotas assigned to this project.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        usage_export_location (google.cloud.compute_v1beta.types.UsageExportLocation):
            An optional naming prefix for daily usage
            reports and the Google Cloud Storage bucket
            where they are stored.

            This field is a member of `oneof`_ ``_usage_export_location``.
        vm_dns_setting (str):
            [Output Only] Default internal DNS setting used by VMs
            running in this project. Check the VmDnsSetting enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_vm_dns_setting``.
        xpn_project_status (str):
            [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.
            Check the XpnProjectStatus enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_xpn_project_status``.
    """

    class CloudArmorTier(proto.Enum):
        r"""[Output Only] The Cloud Armor tier for this project. It can be one
        of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this
        field is not specified, it is assumed to be CA_STANDARD. Additional
        supported values which may be not listed in the enum directly due to
        technical reasons: CA_STANDARD

        Values:
            UNDEFINED_CLOUD_ARMOR_TIER (0):
                A value indicating that the enum field is not
                set.
            CA_ENTERPRISE_ANNUAL (219921116):
                Enterprise tier protection billed annually.
            CA_ENTERPRISE_PAYGO (453530323):
                Enterprise tier protection billed monthly.
            CA_STANDARD (13156734):
                No description available.
        """
        UNDEFINED_CLOUD_ARMOR_TIER = 0
        CA_ENTERPRISE_ANNUAL = 219921116
        CA_ENTERPRISE_PAYGO = 453530323
        CA_STANDARD = 13156734

    class DefaultNetworkTier(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_DEFAULT_NETWORK_TIER (0):
                A value indicating that the enum field is not
                set.
            FIXED_STANDARD (310464328):
                Public internet quality with fixed bandwidth.
            PREMIUM (399530551):
                High quality, Google-grade network tier,
                support for all networking products.
            STANDARD (484642493):
                Public internet quality, only limited support
                for other networking products.
            STANDARD_OVERRIDES_FIXED_STANDARD (465847234):
                (Output only) Temporary tier for FIXED_STANDARD when fixed
                standard tier is expired or not configured.
        """
        UNDEFINED_DEFAULT_NETWORK_TIER = 0
        FIXED_STANDARD = 310464328
        PREMIUM = 399530551
        STANDARD = 484642493
        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234

    class ManagedProtectionTier(proto.Enum):
        r"""[Output Only] The Cloud Armor Managed Protection (CAMP) tier for
        this project. It can be one of the following values: CA_STANDARD,
        CAMP_PLUS_PAYGO. If this field is not specified, it is assumed to be
        CA_STANDARD. Additional supported values which may be not listed in
        the enum directly due to technical reasons: CA_STANDARD

        Values:
            UNDEFINED_MANAGED_PROTECTION_TIER (0):
                A value indicating that the enum field is not
                set.
            CAMP_PLUS_ANNUAL (406967142):
                Plus tier protection annual.
            CAMP_PLUS_PAYGO (165150985):
                Plus tier protection monthly.
        """
        UNDEFINED_MANAGED_PROTECTION_TIER = 0
        CAMP_PLUS_ANNUAL = 406967142
        CAMP_PLUS_PAYGO = 165150985

    class VmDnsSetting(proto.Enum):
        r"""[Output Only] Default internal DNS setting used by VMs running in
        this project.

        Values:
            UNDEFINED_VM_DNS_SETTING (0):
                A value indicating that the enum field is not
                set.
            GLOBAL_DEFAULT (345419141):
                No description available.
            UNSPECIFIED_VM_DNS_SETTING (35691930):
                No description available.
            ZONAL_DEFAULT (368475782):
                No description available.
            ZONAL_ONLY (521198951):
                No description available.
        """
        UNDEFINED_VM_DNS_SETTING = 0
        GLOBAL_DEFAULT = 345419141
        UNSPECIFIED_VM_DNS_SETTING = 35691930
        ZONAL_DEFAULT = 368475782
        ZONAL_ONLY = 521198951

    class XpnProjectStatus(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_XPN_PROJECT_STATUS (0):
                A value indicating that the enum field is not
                set.
            HOST (2223528):
                No description available.
            UNSPECIFIED_XPN_PROJECT_STATUS (340393257):
                No description available.
        """
        UNDEFINED_XPN_PROJECT_STATUS = 0
        HOST = 2223528
        UNSPECIFIED_XPN_PROJECT_STATUS = 340393257

    cloud_armor_tier: str = proto.Field(
        proto.STRING,
        number=4427052,
        optional=True,
    )
    common_instance_metadata: "Metadata" = proto.Field(
        proto.MESSAGE,
        number=185794117,
        optional=True,
        message="Metadata",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    default_network_tier: str = proto.Field(
        proto.STRING,
        number=471753361,
        optional=True,
    )
    default_service_account: str = proto.Field(
        proto.STRING,
        number=298712229,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    enabled_features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=469017467,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    managed_protection_tier: str = proto.Field(
        proto.STRING,
        number=7804648,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    quotas: MutableSequence["Quota"] = proto.RepeatedField(
        proto.MESSAGE,
        number=125341947,
        message="Quota",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    usage_export_location: "UsageExportLocation" = proto.Field(
        proto.MESSAGE,
        number=347543874,
        optional=True,
        message="UsageExportLocation",
    )
    vm_dns_setting: str = proto.Field(
        proto.STRING,
        number=58856370,
        optional=True,
    )
    xpn_project_status: str = proto.Field(
        proto.STRING,
        number=228419265,
        optional=True,
    )


class ProjectsDisableXpnResourceRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        xpn_resource (google.cloud.compute_v1beta.types.XpnResourceId):
            Service resource (a.k.a service project) ID.

            This field is a member of `oneof`_ ``_xpn_resource``.
    """

    xpn_resource: "XpnResourceId" = proto.Field(
        proto.MESSAGE,
        number=133384631,
        optional=True,
        message="XpnResourceId",
    )


class ProjectsEnableXpnResourceRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        xpn_resource (google.cloud.compute_v1beta.types.XpnResourceId):
            Service resource (a.k.a service project) ID.

            This field is a member of `oneof`_ ``_xpn_resource``.
    """

    xpn_resource: "XpnResourceId" = proto.Field(
        proto.MESSAGE,
        number=133384631,
        optional=True,
        message="XpnResourceId",
    )


class ProjectsGetXpnResources(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        kind (str):
            [Output Only] Type of resource. Always
            compute#projectsGetXpnResources for lists of service
            resources (a.k.a service projects)

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        resources (MutableSequence[google.cloud.compute_v1beta.types.XpnResourceId]):
            Service resources (a.k.a service projects)
            attached to this project as their shared VPC
            host.
    """

    @property
    def raw_page(self):
        return self

    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    resources: MutableSequence["XpnResourceId"] = proto.RepeatedField(
        proto.MESSAGE,
        number=164412965,
        message="XpnResourceId",
    )


class ProjectsListXpnHostsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        organization (str):
            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.

            This field is a member of `oneof`_ ``_organization``.
    """

    organization: str = proto.Field(
        proto.STRING,
        number=105180467,
        optional=True,
    )


class ProjectsSetCloudArmorTierRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        cloud_armor_tier (str):
            Managed protection tier to be set.
            Check the CloudArmorTier enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_cloud_armor_tier``.
    """

    class CloudArmorTier(proto.Enum):
        r"""Managed protection tier to be set.

        Values:
            UNDEFINED_CLOUD_ARMOR_TIER (0):
                A value indicating that the enum field is not
                set.
            CA_ENTERPRISE_ANNUAL (219921116):
                Enterprise tier protection billed annually.
            CA_ENTERPRISE_PAYGO (453530323):
                Enterprise tier protection billed monthly.
            CA_STANDARD (13156734):
                Standard protection.
        """
        UNDEFINED_CLOUD_ARMOR_TIER = 0
        CA_ENTERPRISE_ANNUAL = 219921116
        CA_ENTERPRISE_PAYGO = 453530323
        CA_STANDARD = 13156734

    cloud_armor_tier: str = proto.Field(
        proto.STRING,
        number=4427052,
        optional=True,
    )


class ProjectsSetDefaultNetworkTierRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network_tier (str):
            Default network tier to be set.
            Check the NetworkTier enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_network_tier``.
    """

    class NetworkTier(proto.Enum):
        r"""Default network tier to be set.

        Values:
            UNDEFINED_NETWORK_TIER (0):
                A value indicating that the enum field is not
                set.
            FIXED_STANDARD (310464328):
                Public internet quality with fixed bandwidth.
            PREMIUM (399530551):
                High quality, Google-grade network tier,
                support for all networking products.
            STANDARD (484642493):
                Public internet quality, only limited support
                for other networking products.
            STANDARD_OVERRIDES_FIXED_STANDARD (465847234):
                (Output only) Temporary tier for FIXED_STANDARD when fixed
                standard tier is expired or not configured.
        """
        UNDEFINED_NETWORK_TIER = 0
        FIXED_STANDARD = 310464328
        PREMIUM = 399530551
        STANDARD = 484642493
        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234

    network_tier: str = proto.Field(
        proto.STRING,
        number=517397843,
        optional=True,
    )


class ProjectsSetManagedProtectionTierRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        managed_protection_tier (str):
            Managed protection tier to be set.
            Check the ManagedProtectionTier enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_managed_protection_tier``.
    """

    class ManagedProtectionTier(proto.Enum):
        r"""Managed protection tier to be set.

        Values:
            UNDEFINED_MANAGED_PROTECTION_TIER (0):
                A value indicating that the enum field is not
                set.
            CAMP_PLUS_ANNUAL (406967142):
                Plus tier protection annual.
            CAMP_PLUS_PAYGO (165150985):
                Plus tier protection monthly.
            CA_STANDARD (13156734):
                Standard protection.
        """
        UNDEFINED_MANAGED_PROTECTION_TIER = 0
        CAMP_PLUS_ANNUAL = 406967142
        CAMP_PLUS_PAYGO = 165150985
        CA_STANDARD = 13156734

    managed_protection_tier: str = proto.Field(
        proto.STRING,
        number=7804648,
        optional=True,
    )


class PublicAdvertisedPrefix(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        byoip_api_version (str):
            [Output Only] The version of BYOIP API. Check the
            ByoipApiVersion enum for the list of possible values.

            This field is a member of `oneof`_ ``_byoip_api_version``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        dns_verification_ip (str):
            The address to be used for reverse DNS
            verification.

            This field is a member of `oneof`_ ``_dns_verification_ip``.
        fingerprint (str):
            Fingerprint of this resource. A hash of the
            contents stored in this object. This field is
            used in optimistic locking. This field will be
            ignored when inserting a new
            PublicAdvertisedPrefix. An up-to-date
            fingerprint must be provided in order to update
            the PublicAdvertisedPrefix, otherwise the
            request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve a
            PublicAdvertisedPrefix.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        ip_cidr_range (str):
            The address range, in CIDR format,
            represented by this public advertised prefix.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#publicAdvertisedPrefix for public advertised
            prefixes.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        pdp_scope (str):
            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. Check the
            PdpScope enum for the list of possible values.

            This field is a member of `oneof`_ ``_pdp_scope``.
        public_delegated_prefixs (MutableSequence[google.cloud.compute_v1beta.types.PublicAdvertisedPrefixPublicDelegatedPrefix]):
            [Output Only] The list of public delegated prefixes that
            exist for this public advertised prefix.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        shared_secret (str):
            [Output Only] The shared secret to be used for reverse DNS
            verification.

            This field is a member of `oneof`_ ``_shared_secret``.
        status (str):
            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. Check the Status enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class ByoipApiVersion(proto.Enum):
        r"""[Output Only] The version of BYOIP API.

        Values:
            UNDEFINED_BYOIP_API_VERSION (0):
                A value indicating that the enum field is not
                set.
            V1 (2715):
                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 (2716):
                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.
        """
        UNDEFINED_BYOIP_API_VERSION = 0
        V1 = 2715
        V2 = 2716

    class PdpScope(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_PDP_SCOPE (0):
                A value indicating that the enum field is not
                set.
            GLOBAL (494663587):
                The public delegated prefix is global only.
                The provisioning will take ~4 weeks.
            GLOBAL_AND_REGIONAL (318053059):
                The public delegated prefixes is BYOIP V1
                legacy prefix. This is output only value and no
                longer supported in BYOIP V2.
            REGIONAL (92288543):
                The public delegated prefix is regional only.
                The provisioning will take a few minutes.
        """
        UNDEFINED_PDP_SCOPE = 0
        GLOBAL = 494663587
        GLOBAL_AND_REGIONAL = 318053059
        REGIONAL = 92288543

    class Status(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ANNOUNCED_TO_INTERNET (177880897):
                The prefix is announced to Internet.
            INITIAL (518841124):
                RPKI validation is complete.
            PREFIX_CONFIGURATION_COMPLETE (480889551):
                The prefix is fully configured.
            PREFIX_CONFIGURATION_IN_PROGRESS (378550961):
                The prefix is being configured.
            PREFIX_REMOVAL_IN_PROGRESS (284375783):
                The prefix is being removed.
            PTR_CONFIGURED (513497167):
                User has configured the PTR.
            READY_TO_ANNOUNCE (64641265):
                The prefix is currently withdrawn but ready
                to be announced.
            REVERSE_DNS_LOOKUP_FAILED (295755183):
                Reverse DNS lookup failed.
            VALIDATED (66197998):
                Reverse DNS lookup is successful.
        """
        UNDEFINED_STATUS = 0
        ANNOUNCED_TO_INTERNET = 177880897
        INITIAL = 518841124
        PREFIX_CONFIGURATION_COMPLETE = 480889551
        PREFIX_CONFIGURATION_IN_PROGRESS = 378550961
        PREFIX_REMOVAL_IN_PROGRESS = 284375783
        PTR_CONFIGURED = 513497167
        READY_TO_ANNOUNCE = 64641265
        REVERSE_DNS_LOOKUP_FAILED = 295755183
        VALIDATED = 66197998

    byoip_api_version: str = proto.Field(
        proto.STRING,
        number=162683283,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    dns_verification_ip: str = proto.Field(
        proto.STRING,
        number=241011381,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    pdp_scope: str = proto.Field(
        proto.STRING,
        number=524264785,
        optional=True,
    )
    public_delegated_prefixs: MutableSequence[
        "PublicAdvertisedPrefixPublicDelegatedPrefix"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=425811723,
        message="PublicAdvertisedPrefixPublicDelegatedPrefix",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    shared_secret: str = proto.Field(
        proto.STRING,
        number=381932490,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class PublicAdvertisedPrefixList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.PublicAdvertisedPrefix]):
            A list of PublicAdvertisedPrefix resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#publicAdvertisedPrefix for public advertised
            prefixes.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["PublicAdvertisedPrefix"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="PublicAdvertisedPrefix",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class PublicAdvertisedPrefixPublicDelegatedPrefix(proto.Message):
    r"""Represents a CIDR range which can be used to assign
    addresses.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_range (str):
            The IP address range of the public delegated
            prefix

            This field is a member of `oneof`_ ``_ip_range``.
        name (str):
            The name of the public delegated prefix

            This field is a member of `oneof`_ ``_name``.
        project (str):
            The project number of the public delegated
            prefix

            This field is a member of `oneof`_ ``_project``.
        region (str):
            The region of the public delegated prefix if
            it is regional. If absent, the prefix is global.

            This field is a member of `oneof`_ ``_region``.
        status (str):
            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.

            This field is a member of `oneof`_ ``_status``.
    """

    ip_range: str = proto.Field(
        proto.STRING,
        number=145092645,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class PublicDelegatedPrefix(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        allocatable_prefix_length (int):
            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.

            This field is a member of `oneof`_ ``_allocatable_prefix_length``.
        byoip_api_version (str):
            [Output Only] The version of BYOIP API. Check the
            ByoipApiVersion enum for the list of possible values.

            This field is a member of `oneof`_ ``_byoip_api_version``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            Fingerprint of this resource. A hash of the
            contents stored in this object. This field is
            used in optimistic locking. This field will be
            ignored when inserting a new
            PublicDelegatedPrefix. An up-to-date fingerprint
            must be provided in order to update the
            PublicDelegatedPrefix, otherwise the request
            will fail with error 412 conditionNotMet. To see
            the latest fingerprint, make a get() request to
            retrieve a PublicDelegatedPrefix.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        ip_cidr_range (str):
            The IP address range, in CIDR format,
            represented by this public delegated prefix.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        is_live_migration (bool):
            If true, the prefix will be live migrated.

            This field is a member of `oneof`_ ``_is_live_migration``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#publicDelegatedPrefix for public delegated prefixes.

            This field is a member of `oneof`_ ``_kind``.
        mode (str):
            The public delegated prefix mode for IPv6
            only. Check the Mode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_mode``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        parent_prefix (str):
            The URL of parent prefix. Either
            PublicAdvertisedPrefix or PublicDelegatedPrefix.

            This field is a member of `oneof`_ ``_parent_prefix``.
        public_delegated_sub_prefixs (MutableSequence[google.cloud.compute_v1beta.types.PublicDelegatedPrefixPublicDelegatedSubPrefix]):
            The list of sub public delegated prefixes
            that exist for this public delegated prefix.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [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. Check the Status enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class ByoipApiVersion(proto.Enum):
        r"""[Output Only] The version of BYOIP API.

        Values:
            UNDEFINED_BYOIP_API_VERSION (0):
                A value indicating that the enum field is not
                set.
            V1 (2715):
                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 (2716):
                This public delegated prefix takes minutes to
                delete. Announce and Withdraw APIs can be used
                on this prefix to change the BGP status.
        """
        UNDEFINED_BYOIP_API_VERSION = 0
        V1 = 2715
        V2 = 2716

    class Mode(proto.Enum):
        r"""The public delegated prefix mode for IPv6 only.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            DELEGATION (264149288):
                The public delegated prefix is used for
                further sub-delegation only. Such prefixes
                cannot set allocatablePrefixLength.
            EXTERNAL_IPV6_FORWARDING_RULE_CREATION (398684356):
                The public delegated prefix is used for
                creating forwarding rules only. Such prefixes
                cannot set publicDelegatedSubPrefixes.
            EXTERNAL_IPV6_SUBNETWORK_CREATION (61198284):
                The public delegated prefix is used for
                creating dual-mode subnetworks only. Such
                prefixes cannot set publicDelegatedSubPrefixes.
        """
        UNDEFINED_MODE = 0
        DELEGATION = 264149288
        EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356
        EXTERNAL_IPV6_SUBNETWORK_CREATION = 61198284

    class Status(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ANNOUNCED (365103355):
                The public delegated prefix is announced and
                ready to use.
            ANNOUNCED_TO_GOOGLE (454875705):
                The prefix is announced within Google
                network.
            ANNOUNCED_TO_INTERNET (177880897):
                The prefix is announced to Internet and
                within Google.
            DELETING (528602024):
                The public delegated prefix is being
                deprovsioned.
            INITIALIZING (306588749):
                The public delegated prefix is being
                initialized and addresses cannot be created yet.
            READY_TO_ANNOUNCE (64641265):
                The public delegated prefix is currently
                withdrawn but ready to be announced.
        """
        UNDEFINED_STATUS = 0
        ANNOUNCED = 365103355
        ANNOUNCED_TO_GOOGLE = 454875705
        ANNOUNCED_TO_INTERNET = 177880897
        DELETING = 528602024
        INITIALIZING = 306588749
        READY_TO_ANNOUNCE = 64641265

    allocatable_prefix_length: int = proto.Field(
        proto.INT32,
        number=38427446,
        optional=True,
    )
    byoip_api_version: str = proto.Field(
        proto.STRING,
        number=162683283,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    is_live_migration: bool = proto.Field(
        proto.BOOL,
        number=511823856,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    parent_prefix: str = proto.Field(
        proto.STRING,
        number=15233991,
        optional=True,
    )
    public_delegated_sub_prefixs: MutableSequence[
        "PublicDelegatedPrefixPublicDelegatedSubPrefix"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=188940044,
        message="PublicDelegatedPrefixPublicDelegatedSubPrefix",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class PublicDelegatedPrefixAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.PublicDelegatedPrefixesScopedList]):
            A list of PublicDelegatedPrefixesScopedList
            resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#publicDelegatedPrefixAggregatedList for aggregated
            lists of public delegated prefixes.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "PublicDelegatedPrefixesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="PublicDelegatedPrefixesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class PublicDelegatedPrefixList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.PublicDelegatedPrefix]):
            A list of PublicDelegatedPrefix resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#publicDelegatedPrefixList for public delegated
            prefixes.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["PublicDelegatedPrefix"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="PublicDelegatedPrefix",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class PublicDelegatedPrefixPublicDelegatedSubPrefix(proto.Message):
    r"""Represents a sub PublicDelegatedPrefix.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        allocatable_prefix_length (int):
            The allocatable prefix length supported by
            this PublicDelegatedSubPrefix.

            This field is a member of `oneof`_ ``_allocatable_prefix_length``.
        delegatee_project (str):
            Name of the project scoping this
            PublicDelegatedSubPrefix.

            This field is a member of `oneof`_ ``_delegatee_project``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        ip_cidr_range (str):
            The IP address range, in CIDR format,
            represented by this sub public delegated prefix.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        is_address (bool):
            Whether the sub prefix is delegated to create
            Address resources in the delegatee project.

            This field is a member of `oneof`_ ``_is_address``.
        mode (str):
            The PublicDelegatedSubPrefix mode for IPv6
            only. Check the Mode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_mode``.
        name (str):
            The name of the sub public delegated prefix.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [Output Only] The region of the sub public delegated prefix
            if it is regional. If absent, the sub prefix is global.

            This field is a member of `oneof`_ ``_region``.
        status (str):
            [Output Only] The status of the sub public delegated prefix.
            Check the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class Mode(proto.Enum):
        r"""The PublicDelegatedSubPrefix mode for IPv6 only.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            DELEGATION (264149288):
                The public delegated prefix is used for
                further sub-delegation only. Such prefixes
                cannot set allocatablePrefixLength.
            EXTERNAL_IPV6_FORWARDING_RULE_CREATION (398684356):
                The public delegated prefix is used for
                creating forwarding rules only. Such prefixes
                cannot set publicDelegatedSubPrefixes.
            EXTERNAL_IPV6_SUBNETWORK_CREATION (61198284):
                The public delegated prefix is used for
                creating dual-mode subnetworks only. Such
                prefixes cannot set publicDelegatedSubPrefixes.
        """
        UNDEFINED_MODE = 0
        DELEGATION = 264149288
        EXTERNAL_IPV6_FORWARDING_RULE_CREATION = 398684356
        EXTERNAL_IPV6_SUBNETWORK_CREATION = 61198284

    class Status(proto.Enum):
        r"""[Output Only] The status of the sub public delegated prefix.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                No description available.
            INACTIVE (270421099):
                No description available.
        """
        UNDEFINED_STATUS = 0
        ACTIVE = 314733318
        INACTIVE = 270421099

    allocatable_prefix_length: int = proto.Field(
        proto.INT32,
        number=38427446,
        optional=True,
    )
    delegatee_project: str = proto.Field(
        proto.STRING,
        number=414860634,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    is_address: bool = proto.Field(
        proto.BOOL,
        number=352617951,
        optional=True,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class PublicDelegatedPrefixesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        public_delegated_prefixes (MutableSequence[google.cloud.compute_v1beta.types.PublicDelegatedPrefix]):
            [Output Only] A list of PublicDelegatedPrefixes contained in
            this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of public delegated prefixes when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    public_delegated_prefixes: MutableSequence[
        "PublicDelegatedPrefix"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=315261206,
        message="PublicDelegatedPrefix",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class Quota(proto.Message):
    r"""A quotas entry.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        limit (float):
            [Output Only] Quota limit for this metric.

            This field is a member of `oneof`_ ``_limit``.
        metric (str):
            [Output Only] Name of the quota metric. Check the Metric
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_metric``.
        owner (str):
            [Output Only] Owning resource. This is the resource on which
            this quota is applied.

            This field is a member of `oneof`_ ``_owner``.
        usage (float):
            [Output Only] Current usage of this metric.

            This field is a member of `oneof`_ ``_usage``.
    """

    class Metric(proto.Enum):
        r"""[Output Only] Name of the quota metric.

        Values:
            UNDEFINED_METRIC (0):
                A value indicating that the enum field is not
                set.
            A2_CPUS (153206585):
                No description available.
            AFFINITY_GROUPS (108303563):
                No description available.
            AUTOSCALERS (471248988):
                No description available.
            BACKEND_BUCKETS (137626846):
                No description available.
            BACKEND_SERVICES (269623753):
                No description available.
            C2D_CPUS (508182517):
                No description available.
            C2_CPUS (317601211):
                No description available.
            C3_CPUS (346230362):
                No description available.
            COMMITMENTS (456141790):
                No description available.
            COMMITTED_A2_CPUS (59330902):
                No description available.
            COMMITTED_C2D_CPUS (282390904):
                No description available.
            COMMITTED_C2_CPUS (223725528):
                No description available.
            COMMITTED_C3_CPUS (252354679):
                No description available.
            COMMITTED_CPUS (292394702):
                No description available.
            COMMITTED_E2_CPUS (388120154):
                No description available.
            COMMITTED_LICENSES (357606869):
                No description available.
            COMMITTED_LOCAL_SSD_TOTAL_GB (308393480):
                No description available.
            COMMITTED_M3_CPUS (585985):
                No description available.
            COMMITTED_MEMORY_OPTIMIZED_CPUS (489057886):
                No description available.
            COMMITTED_N2A_CPUS (40064304):
                No description available.
            COMMITTED_N2D_CPUS (125951757):
                No description available.
            COMMITTED_N2_CPUS (322589603):
                No description available.
            COMMITTED_NVIDIA_A100_80GB_GPUS (464326565):
                No description available.
            COMMITTED_NVIDIA_A100_GPUS (375799445):
                No description available.
            COMMITTED_NVIDIA_H100_GPUS (71649180):
                No description available.
            COMMITTED_NVIDIA_K80_GPUS (3857188):
                No description available.
            COMMITTED_NVIDIA_L4_GPUS (19163645):
                No description available.
            COMMITTED_NVIDIA_P100_GPUS (107528100):
                No description available.
            COMMITTED_NVIDIA_P4_GPUS (347952897):
                No description available.
            COMMITTED_NVIDIA_T4_GPUS (139871237):
                No description available.
            COMMITTED_NVIDIA_V100_GPUS (219562):
                No description available.
            COMMITTED_T2A_CPUS (296378986):
                No description available.
            COMMITTED_T2D_CPUS (382266439):
                No description available.
            COMMITTED_Z3_CPUS (263844686):
                No description available.
            CPUS (2075595):
                Guest CPUs
            CPUS_ALL_REGIONS (470911149):
                No description available.
            DISKS_TOTAL_GB (353520543):
                No description available.
            E2_CPUS (481995837):
                No description available.
            EXTERNAL_MANAGED_FORWARDING_RULES (150790089):
                No description available.
            EXTERNAL_NETWORK_LB_FORWARDING_RULES (374298265):
                No description available.
            EXTERNAL_PROTOCOL_FORWARDING_RULES (63478888):
                No description available.
            EXTERNAL_VPN_GATEWAYS (272457134):
                No description available.
            FIREWALLS (374485843):
                No description available.
            FORWARDING_RULES (432668949):
                No description available.
            GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES (164566753):
                No description available.
            GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES (327611949):
                No description available.
            GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES (400256169):
                No description available.
            GLOBAL_INTERNAL_ADDRESSES (42738332):
                No description available.
            GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES (256608303):
                No description available.
            GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES (323514196):
                No description available.
            GPUS_ALL_REGIONS (39387177):
                No description available.
            HDB_TOTAL_GB (319316271):
                No description available.
            HDB_TOTAL_IOPS (309720317):
                No description available.
            HDB_TOTAL_THROUGHPUT (20981374):
                No description available.
            HEALTH_CHECKS (289347502):
                No description available.
            IMAGES (15562360):
                No description available.
            INSTANCES (131337822):
                No description available.
            INSTANCE_GROUPS (355919038):
                No description available.
            INSTANCE_GROUP_MANAGERS (101798192):
                No description available.
            INSTANCE_TEMPLATES (226188271):
                No description available.
            INTERCONNECTS (415204741):
                No description available.
            INTERCONNECT_ATTACHMENTS_PER_REGION (159968086):
                No description available.
            INTERCONNECT_ATTACHMENTS_TOTAL_MBPS (425090419):
                No description available.
            INTERCONNECT_TOTAL_GBPS (285341866):
                No description available.
            INTERNAL_ADDRESSES (197899392):
                No description available.
            INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES (266433668):
                No description available.
            IN_PLACE_SNAPSHOTS (151359133):
                No description available.
            IN_USE_ADDRESSES (402125072):
                No description available.
            IN_USE_BACKUP_SCHEDULES (32786705):
                No description available.
            IN_USE_SNAPSHOT_SCHEDULES (462104083):
                No description available.
            LOCAL_SSD_TOTAL_GB (330878021):
                No description available.
            M1_CPUS (37203366):
                No description available.
            M2_CPUS (65832517):
                No description available.
            M3_CPUS (94461668):
                No description available.
            MACHINE_IMAGES (446986640):
                No description available.
            N2A_CPUS (265855917):
                No description available.
            N2D_CPUS (351743370):
                No description available.
            N2_CPUS (416465286):
                No description available.
            NETWORKS (485481477):
                No description available.
            NETWORK_ATTACHMENTS (149028575):
                No description available.
            NETWORK_ENDPOINT_GROUPS (102144909):
                No description available.
            NETWORK_FIREWALL_POLICIES (101117374):
                No description available.
            NET_LB_SECURITY_POLICIES_PER_REGION (157892269):
                No description available.
            NET_LB_SECURITY_POLICY_RULES_PER_REGION (356090931):
                No description available.
            NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION (311243888):
                No description available.
            NODE_GROUPS (24624817):
                No description available.
            NODE_TEMPLATES (474896668):
                No description available.
            NVIDIA_A100_80GB_GPUS (286389320):
                No description available.
            NVIDIA_A100_GPUS (504872978):
                No description available.
            NVIDIA_K80_GPUS (163886599):
                No description available.
            NVIDIA_L4_GPUS (491923130):
                No description available.
            NVIDIA_P100_GPUS (236601633):
                No description available.
            NVIDIA_P100_VWS_GPUS (213970574):
                No description available.
            NVIDIA_P4_GPUS (283841470):
                No description available.
            NVIDIA_P4_VWS_GPUS (528296619):
                No description available.
            NVIDIA_T4_GPUS (75759810):
                No description available.
            NVIDIA_T4_VWS_GPUS (319813039):
                No description available.
            NVIDIA_V100_GPUS (129293095):
                No description available.
            PACKET_MIRRORINGS (15578407):
                No description available.
            PD_EXTREME_TOTAL_PROVISIONED_IOPS (69593965):
                No description available.
            PREEMPTIBLE_CPUS (251184841):
                No description available.
            PREEMPTIBLE_LOCAL_SSD_GB (260819336):
                No description available.
            PREEMPTIBLE_NVIDIA_A100_80GB_GPUS (151942410):
                No description available.
            PREEMPTIBLE_NVIDIA_A100_GPUS (68832784):
                No description available.
            PREEMPTIBLE_NVIDIA_H100_GPUS (301553431):
                No description available.
            PREEMPTIBLE_NVIDIA_K80_GPUS (374960201):
                No description available.
            PREEMPTIBLE_NVIDIA_L4_GPUS (100408376):
                No description available.
            PREEMPTIBLE_NVIDIA_P100_GPUS (337432351):
                No description available.
            PREEMPTIBLE_NVIDIA_P100_VWS_GPUS (313544076):
                No description available.
            PREEMPTIBLE_NVIDIA_P4_GPUS (429197628):
                No description available.
            PREEMPTIBLE_NVIDIA_P4_VWS_GPUS (252981545):
                No description available.
            PREEMPTIBLE_NVIDIA_T4_GPUS (221115968):
                No description available.
            PREEMPTIBLE_NVIDIA_T4_VWS_GPUS (44497965):
                No description available.
            PREEMPTIBLE_NVIDIA_V100_GPUS (230123813):
                No description available.
            PREEMPTIBLE_TPU_LITE_DEVICE_V5 (174262523):
                No description available.
            PREEMPTIBLE_TPU_LITE_PODSLICE_V5 (112281796):
                No description available.
            PREEMPTIBLE_TPU_PODSLICE_V4 (425541132):
                No description available.
            PRIVATE_V6_ACCESS_SUBNETWORKS (47021549):
                No description available.
            PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK (231164291):
                No description available.
            PSC_INTERNAL_LB_FORWARDING_RULES (169005435):
                No description available.
            PUBLIC_ADVERTISED_PREFIXES (471371980):
                No description available.
            PUBLIC_DELEGATED_PREFIXES (532465974):
                No description available.
            REGIONAL_AUTOSCALERS (29363772):
                No description available.
            REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES (4240989):
                No description available.
            REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES (409564525):
                No description available.
            REGIONAL_INSTANCE_GROUP_MANAGERS (37543696):
                No description available.
            REGIONAL_INTERNAL_LB_BACKEND_SERVICES (137983760):
                No description available.
            REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES (96282539):
                No description available.
            REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES (483162968):
                No description available.
            RESERVATIONS (32644647):
                No description available.
            RESOURCE_POLICIES (83955297):
                No description available.
            ROUTERS (493018666):
                No description available.
            ROUTES (275680074):
                No description available.
            SECURITY_POLICIES (189518703):
                No description available.
            SECURITY_POLICIES_PER_REGION (249041734):
                No description available.
            SECURITY_POLICY_ADVANCED_RULES_PER_REGION (371815341):
                No description available.
            SECURITY_POLICY_CEVAL_RULES (470815689):
                No description available.
            SECURITY_POLICY_RULES (203549225):
                No description available.
            SECURITY_POLICY_RULES_PER_REGION (126510156):
                No description available.
            SERVICE_ATTACHMENTS (471521510):
                No description available.
            SNAPSHOTS (343405327):
                The total number of snapshots allowed for a
                single project.
            SSD_TOTAL_GB (161732561):
                No description available.
            SSL_CERTIFICATES (378372399):
                No description available.
            SSL_POLICIES (523254339):
                No description available.
            STATIC_ADDRESSES (93624049):
                No description available.
            STATIC_BYOIP_ADDRESSES (275809649):
                No description available.
            STATIC_EXTERNAL_IPV6_ADDRESS_RANGES (472346774):
                No description available.
            SUBNETWORKS (421330469):
                No description available.
            T2A_CPUS (522170599):
                No description available.
            T2D_CPUS (71187140):
                No description available.
            TARGET_HTTPS_PROXIES (219522506):
                No description available.
            TARGET_HTTP_PROXIES (164117155):
                No description available.
            TARGET_INSTANCES (284519728):
                No description available.
            TARGET_POOLS (348261257):
                No description available.
            TARGET_SSL_PROXIES (159216235):
                No description available.
            TARGET_TCP_PROXIES (182243136):
                No description available.
            TARGET_VPN_GATEWAYS (75029928):
                No description available.
            TPU_LITE_DEVICE_V5 (449577597):
                No description available.
            TPU_LITE_PODSLICE_V5 (12708294):
                No description available.
            TPU_PODSLICE_V4 (214467530):
                No description available.
            URL_MAPS (378660743):
                No description available.
            VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES (128400161):
                No description available.
            VPN_GATEWAYS (35620282):
                No description available.
            VPN_TUNNELS (104327296):
                No description available.
            XPN_SERVICE_PROJECTS (95191981):
                No description available.
        """
        UNDEFINED_METRIC = 0
        A2_CPUS = 153206585
        AFFINITY_GROUPS = 108303563
        AUTOSCALERS = 471248988
        BACKEND_BUCKETS = 137626846
        BACKEND_SERVICES = 269623753
        C2D_CPUS = 508182517
        C2_CPUS = 317601211
        C3_CPUS = 346230362
        COMMITMENTS = 456141790
        COMMITTED_A2_CPUS = 59330902
        COMMITTED_C2D_CPUS = 282390904
        COMMITTED_C2_CPUS = 223725528
        COMMITTED_C3_CPUS = 252354679
        COMMITTED_CPUS = 292394702
        COMMITTED_E2_CPUS = 388120154
        COMMITTED_LICENSES = 357606869
        COMMITTED_LOCAL_SSD_TOTAL_GB = 308393480
        COMMITTED_M3_CPUS = 585985
        COMMITTED_MEMORY_OPTIMIZED_CPUS = 489057886
        COMMITTED_N2A_CPUS = 40064304
        COMMITTED_N2D_CPUS = 125951757
        COMMITTED_N2_CPUS = 322589603
        COMMITTED_NVIDIA_A100_80GB_GPUS = 464326565
        COMMITTED_NVIDIA_A100_GPUS = 375799445
        COMMITTED_NVIDIA_H100_GPUS = 71649180
        COMMITTED_NVIDIA_K80_GPUS = 3857188
        COMMITTED_NVIDIA_L4_GPUS = 19163645
        COMMITTED_NVIDIA_P100_GPUS = 107528100
        COMMITTED_NVIDIA_P4_GPUS = 347952897
        COMMITTED_NVIDIA_T4_GPUS = 139871237
        COMMITTED_NVIDIA_V100_GPUS = 219562
        COMMITTED_T2A_CPUS = 296378986
        COMMITTED_T2D_CPUS = 382266439
        COMMITTED_Z3_CPUS = 263844686
        CPUS = 2075595
        CPUS_ALL_REGIONS = 470911149
        DISKS_TOTAL_GB = 353520543
        E2_CPUS = 481995837
        EXTERNAL_MANAGED_FORWARDING_RULES = 150790089
        EXTERNAL_NETWORK_LB_FORWARDING_RULES = 374298265
        EXTERNAL_PROTOCOL_FORWARDING_RULES = 63478888
        EXTERNAL_VPN_GATEWAYS = 272457134
        FIREWALLS = 374485843
        FORWARDING_RULES = 432668949
        GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 164566753
        GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES = 327611949
        GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES = 400256169
        GLOBAL_INTERNAL_ADDRESSES = 42738332
        GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES = 256608303
        GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 323514196
        GPUS_ALL_REGIONS = 39387177
        HDB_TOTAL_GB = 319316271
        HDB_TOTAL_IOPS = 309720317
        HDB_TOTAL_THROUGHPUT = 20981374
        HEALTH_CHECKS = 289347502
        IMAGES = 15562360
        INSTANCES = 131337822
        INSTANCE_GROUPS = 355919038
        INSTANCE_GROUP_MANAGERS = 101798192
        INSTANCE_TEMPLATES = 226188271
        INTERCONNECTS = 415204741
        INTERCONNECT_ATTACHMENTS_PER_REGION = 159968086
        INTERCONNECT_ATTACHMENTS_TOTAL_MBPS = 425090419
        INTERCONNECT_TOTAL_GBPS = 285341866
        INTERNAL_ADDRESSES = 197899392
        INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES = 266433668
        IN_PLACE_SNAPSHOTS = 151359133
        IN_USE_ADDRESSES = 402125072
        IN_USE_BACKUP_SCHEDULES = 32786705
        IN_USE_SNAPSHOT_SCHEDULES = 462104083
        LOCAL_SSD_TOTAL_GB = 330878021
        M1_CPUS = 37203366
        M2_CPUS = 65832517
        M3_CPUS = 94461668
        MACHINE_IMAGES = 446986640
        N2A_CPUS = 265855917
        N2D_CPUS = 351743370
        N2_CPUS = 416465286
        NETWORKS = 485481477
        NETWORK_ATTACHMENTS = 149028575
        NETWORK_ENDPOINT_GROUPS = 102144909
        NETWORK_FIREWALL_POLICIES = 101117374
        NET_LB_SECURITY_POLICIES_PER_REGION = 157892269
        NET_LB_SECURITY_POLICY_RULES_PER_REGION = 356090931
        NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION = 311243888
        NODE_GROUPS = 24624817
        NODE_TEMPLATES = 474896668
        NVIDIA_A100_80GB_GPUS = 286389320
        NVIDIA_A100_GPUS = 504872978
        NVIDIA_K80_GPUS = 163886599
        NVIDIA_L4_GPUS = 491923130
        NVIDIA_P100_GPUS = 236601633
        NVIDIA_P100_VWS_GPUS = 213970574
        NVIDIA_P4_GPUS = 283841470
        NVIDIA_P4_VWS_GPUS = 528296619
        NVIDIA_T4_GPUS = 75759810
        NVIDIA_T4_VWS_GPUS = 319813039
        NVIDIA_V100_GPUS = 129293095
        PACKET_MIRRORINGS = 15578407
        PD_EXTREME_TOTAL_PROVISIONED_IOPS = 69593965
        PREEMPTIBLE_CPUS = 251184841
        PREEMPTIBLE_LOCAL_SSD_GB = 260819336
        PREEMPTIBLE_NVIDIA_A100_80GB_GPUS = 151942410
        PREEMPTIBLE_NVIDIA_A100_GPUS = 68832784
        PREEMPTIBLE_NVIDIA_H100_GPUS = 301553431
        PREEMPTIBLE_NVIDIA_K80_GPUS = 374960201
        PREEMPTIBLE_NVIDIA_L4_GPUS = 100408376
        PREEMPTIBLE_NVIDIA_P100_GPUS = 337432351
        PREEMPTIBLE_NVIDIA_P100_VWS_GPUS = 313544076
        PREEMPTIBLE_NVIDIA_P4_GPUS = 429197628
        PREEMPTIBLE_NVIDIA_P4_VWS_GPUS = 252981545
        PREEMPTIBLE_NVIDIA_T4_GPUS = 221115968
        PREEMPTIBLE_NVIDIA_T4_VWS_GPUS = 44497965
        PREEMPTIBLE_NVIDIA_V100_GPUS = 230123813
        PREEMPTIBLE_TPU_LITE_DEVICE_V5 = 174262523
        PREEMPTIBLE_TPU_LITE_PODSLICE_V5 = 112281796
        PREEMPTIBLE_TPU_PODSLICE_V4 = 425541132
        PRIVATE_V6_ACCESS_SUBNETWORKS = 47021549
        PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK = 231164291
        PSC_INTERNAL_LB_FORWARDING_RULES = 169005435
        PUBLIC_ADVERTISED_PREFIXES = 471371980
        PUBLIC_DELEGATED_PREFIXES = 532465974
        REGIONAL_AUTOSCALERS = 29363772
        REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 4240989
        REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES = 409564525
        REGIONAL_INSTANCE_GROUP_MANAGERS = 37543696
        REGIONAL_INTERNAL_LB_BACKEND_SERVICES = 137983760
        REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES = 96282539
        REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 483162968
        RESERVATIONS = 32644647
        RESOURCE_POLICIES = 83955297
        ROUTERS = 493018666
        ROUTES = 275680074
        SECURITY_POLICIES = 189518703
        SECURITY_POLICIES_PER_REGION = 249041734
        SECURITY_POLICY_ADVANCED_RULES_PER_REGION = 371815341
        SECURITY_POLICY_CEVAL_RULES = 470815689
        SECURITY_POLICY_RULES = 203549225
        SECURITY_POLICY_RULES_PER_REGION = 126510156
        SERVICE_ATTACHMENTS = 471521510
        SNAPSHOTS = 343405327
        SSD_TOTAL_GB = 161732561
        SSL_CERTIFICATES = 378372399
        SSL_POLICIES = 523254339
        STATIC_ADDRESSES = 93624049
        STATIC_BYOIP_ADDRESSES = 275809649
        STATIC_EXTERNAL_IPV6_ADDRESS_RANGES = 472346774
        SUBNETWORKS = 421330469
        T2A_CPUS = 522170599
        T2D_CPUS = 71187140
        TARGET_HTTPS_PROXIES = 219522506
        TARGET_HTTP_PROXIES = 164117155
        TARGET_INSTANCES = 284519728
        TARGET_POOLS = 348261257
        TARGET_SSL_PROXIES = 159216235
        TARGET_TCP_PROXIES = 182243136
        TARGET_VPN_GATEWAYS = 75029928
        TPU_LITE_DEVICE_V5 = 449577597
        TPU_LITE_PODSLICE_V5 = 12708294
        TPU_PODSLICE_V4 = 214467530
        URL_MAPS = 378660743
        VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES = 128400161
        VPN_GATEWAYS = 35620282
        VPN_TUNNELS = 104327296
        XPN_SERVICE_PROJECTS = 95191981

    limit: float = proto.Field(
        proto.DOUBLE,
        number=102976443,
        optional=True,
    )
    metric: str = proto.Field(
        proto.STRING,
        number=533067184,
        optional=True,
    )
    owner: str = proto.Field(
        proto.STRING,
        number=106164915,
        optional=True,
    )
    usage: float = proto.Field(
        proto.DOUBLE,
        number=111574433,
        optional=True,
    )


class QuotaExceededInfo(proto.Message):
    r"""Additional details for quota exceeded error for resource
    quota.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        dimensions (MutableMapping[str, str]):
            The map holding related quota dimensions.
        future_limit (float):
            Future quota limit being rolled out. The
            limit's unit depends on the quota type or
            metric.

            This field is a member of `oneof`_ ``_future_limit``.
        limit (float):
            Current effective quota limit. The limit's
            unit depends on the quota type or metric.

            This field is a member of `oneof`_ ``_limit``.
        limit_name (str):
            The name of the quota limit.

            This field is a member of `oneof`_ ``_limit_name``.
        metric_name (str):
            The Compute Engine quota metric name.

            This field is a member of `oneof`_ ``_metric_name``.
        rollout_status (str):
            Rollout status of the future quota limit.
            Check the RolloutStatus enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_rollout_status``.
    """

    class RolloutStatus(proto.Enum):
        r"""Rollout status of the future quota limit.

        Values:
            UNDEFINED_ROLLOUT_STATUS (0):
                A value indicating that the enum field is not
                set.
            IN_PROGRESS (469193735):
                IN_PROGRESS - A rollout is in process which will change the
                limit value to future limit.
            ROLLOUT_STATUS_UNSPECIFIED (26864568):
                ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not
                specified. The default value.
        """
        UNDEFINED_ROLLOUT_STATUS = 0
        IN_PROGRESS = 469193735
        ROLLOUT_STATUS_UNSPECIFIED = 26864568

    dimensions: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=414334925,
    )
    future_limit: float = proto.Field(
        proto.DOUBLE,
        number=456564287,
        optional=True,
    )
    limit: float = proto.Field(
        proto.DOUBLE,
        number=102976443,
        optional=True,
    )
    limit_name: str = proto.Field(
        proto.STRING,
        number=398197903,
        optional=True,
    )
    metric_name: str = proto.Field(
        proto.STRING,
        number=409881530,
        optional=True,
    )
    rollout_status: str = proto.Field(
        proto.STRING,
        number=476426816,
        optional=True,
    )


class QuotaStatusWarning(proto.Message):
    r"""[Output Only] Warning of fetching the ``quotas`` field for this
    region. This field is populated only if fetching of the ``quotas``
    field fails.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (str):
            [Output Only] A warning code, if applicable. For example,
            Compute Engine returns NO_RESULTS_ON_PAGE if there are no
            results in the response. Check the Code enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_code``.
        data (MutableSequence[google.cloud.compute_v1beta.types.Data]):
            [Output Only] Metadata about this warning in key: value
            format. For example: "data": [ { "key": "scope", "value":
            "zones/us-east1-d" }
        message (str):
            [Output Only] A human-readable description of the warning
            code.

            This field is a member of `oneof`_ ``_message``.
    """

    class Code(proto.Enum):
        r"""[Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.

        Values:
            UNDEFINED_CODE (0):
                A value indicating that the enum field is not
                set.
            CLEANUP_FAILED (150308440):
                Warning about failed cleanup of transient
                changes made by a failed operation.
            DEPRECATED_RESOURCE_USED (391835586):
                A link to a deprecated resource was created.
            DEPRECATED_TYPE_USED (346526230):
                When deploying and at least one of the
                resources has a type marked as deprecated
            DISK_SIZE_LARGER_THAN_IMAGE_SIZE (369442967):
                The user created a boot disk that is larger
                than image size.
            EXPERIMENTAL_TYPE_USED (451954443):
                When deploying and at least one of the
                resources has a type marked as experimental
            EXTERNAL_API_WARNING (175546307):
                Warning that is present in an external api
                call
            FIELD_VALUE_OVERRIDEN (329669423):
                Warning that value of a field has been
                overridden. Deprecated unused field.
            INJECTED_KERNELS_DEPRECATED (417377419):
                The operation involved use of an injected
                kernel, which is deprecated.
            INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB (401542606):
                A WEIGHTED_MAGLEV backend service is associated with a
                health check that is not of type HTTP/HTTPS/HTTP2.
            LARGE_DEPLOYMENT_WARNING (481440678):
                When deploying a deployment with a
                exceedingly large number of resources
            LIST_OVERHEAD_QUOTA_EXCEED (47618117):
                Resource can't be retrieved due to list
                overhead quota exceed which captures the amount
                of resources filtered out by user-defined list
                filter.
            MISSING_TYPE_DEPENDENCY (344505463):
                A resource depends on a missing type
            NEXT_HOP_ADDRESS_NOT_ASSIGNED (324964999):
                The route's nextHopIp address is not assigned
                to an instance on the network.
            NEXT_HOP_CANNOT_IP_FORWARD (383382887):
                The route's next hop instance cannot ip
                forward.
            NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE (146748434):
                The route's nextHopInstance URL refers to an
                instance that does not have an ipv6 interface on
                the same network as the route.
            NEXT_HOP_INSTANCE_NOT_FOUND (464250446):
                The route's nextHopInstance URL refers to an
                instance that does not exist.
            NEXT_HOP_INSTANCE_NOT_ON_NETWORK (243758146):
                The route's nextHopInstance URL refers to an
                instance that is not on the same network as the
                route.
            NEXT_HOP_NOT_RUNNING (417081265):
                The route's next hop instance does not have a
                status of RUNNING.
            NOT_CRITICAL_ERROR (105763924):
                Error which is not critical. We decided to
                continue the process despite the mentioned
                error.
            NO_RESULTS_ON_PAGE (30036744):
                No results are present on a particular list
                page.
            PARTIAL_SUCCESS (39966469):
                Success is reported, but some results may be
                missing due to errors
            QUOTA_INFO_UNAVAILABLE (304294182):
                Quota information is not available to client
                requests (e.g: regions.list).
            REQUIRED_TOS_AGREEMENT (3745539):
                The user attempted to use a resource that
                requires a TOS they have not accepted.
            RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING (496728641):
                Warning that a resource is in use.
            RESOURCE_NOT_DELETED (168598460):
                One or more of the resources set to
                auto-delete could not be deleted because they
                were in use.
            SCHEMA_VALIDATION_IGNORED (275245642):
                When a resource schema validation is ignored.
            SINGLE_INSTANCE_PROPERTY_TEMPLATE (268305617):
                Instance template used in instance group
                manager is valid as such, but its application
                does not make a lot of sense, because it allows
                only single instance in instance group.
            UNDECLARED_PROPERTIES (390513439):
                When undeclared properties in the schema are
                present
            UNREACHABLE (13328052):
                A given scope cannot be reached.
        """
        UNDEFINED_CODE = 0
        CLEANUP_FAILED = 150308440
        DEPRECATED_RESOURCE_USED = 391835586
        DEPRECATED_TYPE_USED = 346526230
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967
        EXPERIMENTAL_TYPE_USED = 451954443
        EXTERNAL_API_WARNING = 175546307
        FIELD_VALUE_OVERRIDEN = 329669423
        INJECTED_KERNELS_DEPRECATED = 417377419
        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606
        LARGE_DEPLOYMENT_WARNING = 481440678
        LIST_OVERHEAD_QUOTA_EXCEED = 47618117
        MISSING_TYPE_DEPENDENCY = 344505463
        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999
        NEXT_HOP_CANNOT_IP_FORWARD = 383382887
        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434
        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146
        NEXT_HOP_NOT_RUNNING = 417081265
        NOT_CRITICAL_ERROR = 105763924
        NO_RESULTS_ON_PAGE = 30036744
        PARTIAL_SUCCESS = 39966469
        QUOTA_INFO_UNAVAILABLE = 304294182
        REQUIRED_TOS_AGREEMENT = 3745539
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641
        RESOURCE_NOT_DELETED = 168598460
        SCHEMA_VALIDATION_IGNORED = 275245642
        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617
        UNDECLARED_PROPERTIES = 390513439
        UNREACHABLE = 13328052

    code: str = proto.Field(
        proto.STRING,
        number=3059181,
        optional=True,
    )
    data: MutableSequence["Data"] = proto.RepeatedField(
        proto.MESSAGE,
        number=3076010,
        message="Data",
    )
    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )


class RawDisk(proto.Message):
    r"""The parameters of the raw disk image.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        container_type (str):
            The format used to encode and transmit the
            block device, which should be TAR. This is just
            a container and transmission format and not a
            runtime format. Provided by the client when the
            disk image is created. Check the ContainerType
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_container_type``.
        sha1_checksum (str):
            [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.

            This field is a member of `oneof`_ ``_sha1_checksum``.
        source (str):
            The full Google Cloud Storage URL where the raw disk image
            archive is stored. The following are valid formats for the
            URL: -
            https://storage.googleapis.com/bucket_name/image_archive_name
            - https://storage.googleapis.com/bucket_name/folder_name/
            image_archive_name In order to create an image, you must
            provide the full or partial URL of one of the following: -
            The rawDisk.source URL - The sourceDisk URL - The
            sourceImage URL - The sourceSnapshot URL

            This field is a member of `oneof`_ ``_source``.
    """

    class ContainerType(proto.Enum):
        r"""The format used to encode and transmit the block device,
        which should be TAR. This is just a container and transmission
        format and not a runtime format. Provided by the client when the
        disk image is created.

        Values:
            UNDEFINED_CONTAINER_TYPE (0):
                A value indicating that the enum field is not
                set.
            TAR (82821):
                No description available.
        """
        UNDEFINED_CONTAINER_TYPE = 0
        TAR = 82821

    container_type: str = proto.Field(
        proto.STRING,
        number=318809144,
        optional=True,
    )
    sha1_checksum: str = proto.Field(
        proto.STRING,
        number=314444349,
        optional=True,
    )
    source: str = proto.Field(
        proto.STRING,
        number=177235995,
        optional=True,
    )


class RecreateInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.RecreateInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_recreate_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersRecreateInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_recreate_instances_request_resource: "InstanceGroupManagersRecreateInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=21405952,
        message="InstanceGroupManagersRecreateInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class RecreateInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.RecreateInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_recreate_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersRecreateRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_recreate_request_resource: "RegionInstanceGroupManagersRecreateRequest" = proto.Field(
        proto.MESSAGE,
        number=170999316,
        message="RegionInstanceGroupManagersRecreateRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class Reference(proto.Message):
    r"""Represents a reference to a resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        kind (str):
            [Output Only] Type of the resource. Always compute#reference
            for references.

            This field is a member of `oneof`_ ``_kind``.
        reference_type (str):
            A description of the reference type with no implied
            semantics. Possible values include: 1. MEMBER_OF

            This field is a member of `oneof`_ ``_reference_type``.
        referrer (str):
            URL of the resource which refers to the
            target.

            This field is a member of `oneof`_ ``_referrer``.
        target (str):
            URL of the resource to which this reference
            points.

            This field is a member of `oneof`_ ``_target``.
    """

    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    reference_type: str = proto.Field(
        proto.STRING,
        number=247521198,
        optional=True,
    )
    referrer: str = proto.Field(
        proto.STRING,
        number=351173663,
        optional=True,
    )
    target: str = proto.Field(
        proto.STRING,
        number=192835985,
        optional=True,
    )


class Region(proto.Message):
    r"""Represents a Region resource. A region is a geographical area
    where a resource is located. For more information, read Regions
    and Zones.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            [Output Only] The deprecation status associated with this
            region.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            [Output Only] Textual description of the resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always compute#region
            for regions.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        quota_status_warning (google.cloud.compute_v1beta.types.QuotaStatusWarning):
            [Output Only] Warning of fetching the ``quotas`` field for
            this region. This field is populated only if fetching of the
            ``quotas`` field fails.

            This field is a member of `oneof`_ ``_quota_status_warning``.
        quotas (MutableSequence[google.cloud.compute_v1beta.types.Quota]):
            [Output Only] Quotas assigned to this region.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [Output Only] Status of the region, either UP or DOWN. Check
            the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        supports_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_supports_pzs``.
        zones (MutableSequence[str]):
            [Output Only] A list of zones available in this region, in
            the form of resource URLs.
    """

    class Status(proto.Enum):
        r"""[Output Only] Status of the region, either UP or DOWN.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            DOWN (2104482):
                No description available.
            UP (2715):
                No description available.
        """
        UNDEFINED_STATUS = 0
        DOWN = 2104482
        UP = 2715

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    quota_status_warning: "QuotaStatusWarning" = proto.Field(
        proto.MESSAGE,
        number=302941430,
        optional=True,
        message="QuotaStatusWarning",
    )
    quotas: MutableSequence["Quota"] = proto.RepeatedField(
        proto.MESSAGE,
        number=125341947,
        message="Quota",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    supports_pzs: bool = proto.Field(
        proto.BOOL,
        number=83983214,
        optional=True,
    )
    zones: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=116085319,
    )


class RegionAddressesMoveRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            An optional destination address description
            if intended to be different from the source.

            This field is a member of `oneof`_ ``_description``.
        destination_address (str):
            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.

            This field is a member of `oneof`_ ``_destination_address``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    destination_address: str = proto.Field(
        proto.STRING,
        number=371693763,
        optional=True,
    )


class RegionAutoscalerList(proto.Message):
    r"""Contains a list of autoscalers.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Autoscaler]):
            A list of Autoscaler resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Autoscaler"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Autoscaler",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionCommitmentsUpdateReservationsRequest(proto.Message):
    r"""

    Attributes:
        reservations (MutableSequence[google.cloud.compute_v1beta.types.Reservation]):
            A list of two reservations to transfer GPUs
            and Local SSD disks between.
    """

    reservations: MutableSequence["Reservation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=399717927,
        message="Reservation",
    )


class RegionDiskTypeList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.DiskType]):
            A list of DiskType resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#regionDiskTypeList for region disk types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["DiskType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="DiskType",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionDisksAddResourcePoliciesRequest(proto.Message):
    r"""

    Attributes:
        resource_policies (MutableSequence[str]):
            Resource policies to be added to this disk.
    """

    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )


class RegionDisksRemoveResourcePoliciesRequest(proto.Message):
    r"""

    Attributes:
        resource_policies (MutableSequence[str]):
            Resource policies to be removed from this
            disk.
    """

    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )


class RegionDisksResizeRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        size_gb (int):
            The new size of the regional persistent disk,
            which is specified in GB.

            This field is a member of `oneof`_ ``_size_gb``.
    """

    size_gb: int = proto.Field(
        proto.INT64,
        number=494929369,
        optional=True,
    )


class RegionDisksStartAsyncReplicationRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        async_secondary_disk (str):
            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

            This field is a member of `oneof`_ ``_async_secondary_disk``.
    """

    async_secondary_disk: str = proto.Field(
        proto.STRING,
        number=131645867,
        optional=True,
    )


class RegionInstanceGroupList(proto.Message):
    r"""Contains a list of InstanceGroup resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroup]):
            A list of InstanceGroup resources.
        kind (str):
            The resource type.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroup",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionInstanceGroupManagerDeleteInstanceConfigReq(proto.Message):
    r"""RegionInstanceGroupManagers.deletePerInstanceConfigs

    Attributes:
        names (MutableSequence[str]):
            The list of instance names for which we want
            to delete per-instance configs on this managed
            instance group.
    """

    names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=104585032,
    )


class RegionInstanceGroupManagerList(proto.Message):
    r"""Contains a list of managed instance groups.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManager]):
            A list of InstanceGroupManager resources.
        kind (str):
            [Output Only] The resource type, which is always
            compute#instanceGroupManagerList for a list of managed
            instance groups that exist in th regional scope.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceGroupManager"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroupManager",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionInstanceGroupManagerPatchInstanceConfigReq(proto.Message):
    r"""RegionInstanceGroupManagers.patchPerInstanceConfigs

    Attributes:
        per_instance_configs (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            The list of per-instance configurations to
            insert or patch on this managed instance group.
    """

    per_instance_configs: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=526265001,
        message="PerInstanceConfig",
    )


class RegionInstanceGroupManagerResizeRequestsListResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManagerResizeRequest]):
            A list of Resize Request resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#regionInstanceGroupManagerResizeRequestList for a
            list of Resize Requests.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceGroupManagerResizeRequest"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceGroupManagerResizeRequest",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionInstanceGroupManagerUpdateInstanceConfigReq(proto.Message):
    r"""RegionInstanceGroupManagers.updatePerInstanceConfigs

    Attributes:
        per_instance_configs (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            The list of per-instance configurations to
            insert or patch on this managed instance group.
    """

    per_instance_configs: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=526265001,
        message="PerInstanceConfig",
    )


class RegionInstanceGroupManagersAbandonInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class RegionInstanceGroupManagersApplyUpdatesRequest(proto.Message):
    r"""RegionInstanceGroupManagers.applyUpdatesToInstances

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        all_instances (bool):
            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.

            This field is a member of `oneof`_ ``_all_instances``.
        instances (MutableSequence[str]):
            The list of URLs of one or more instances for which you want
            to apply updates. Each URL can be a full URL or a partial
            URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
        minimal_action (str):
            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. Check the MinimalAction enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_minimal_action``.
        most_disruptive_allowed_action (str):
            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. Check the MostDisruptiveAllowedAction
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_most_disruptive_allowed_action``.
    """

    class MinimalAction(proto.Enum):
        r"""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. Additional
        supported values which may be not listed in the enum directly
        due to technical reasons:

        NONE
        REFRESH
        REPLACE
        RESTART

        Values:
            UNDEFINED_MINIMAL_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MINIMAL_ACTION = 0

    class MostDisruptiveAllowedAction(proto.Enum):
        r"""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. Additional supported
        values which may be not listed in the enum directly due to
        technical reasons:

        NONE
        REFRESH
        REPLACE
        RESTART

        Values:
            UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0

    all_instances: bool = proto.Field(
        proto.BOOL,
        number=403676512,
        optional=True,
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )
    minimal_action: str = proto.Field(
        proto.STRING,
        number=270567060,
        optional=True,
    )
    most_disruptive_allowed_action: str = proto.Field(
        proto.STRING,
        number=66103053,
        optional=True,
    )


class RegionInstanceGroupManagersCreateInstancesRequest(proto.Message):
    r"""RegionInstanceGroupManagers.createInstances

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            [Required] List of specifications of per-instance configs.
    """

    instances: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="PerInstanceConfig",
    )


class RegionInstanceGroupManagersDeleteInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instances (MutableSequence[str]):
            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].
        skip_instances_on_validation_error (bool):
            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.

            This field is a member of `oneof`_ ``_skip_instances_on_validation_error``.
    """

    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )
    skip_instances_on_validation_error: bool = proto.Field(
        proto.BOOL,
        number=40631073,
        optional=True,
    )


class RegionInstanceGroupManagersListErrorsResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceManagedByIgmError]):
            [Output Only] The list of errors of the managed instance
            group.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
    """

    @property
    def raw_page(self):
        return self

    items: MutableSequence["InstanceManagedByIgmError"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceManagedByIgmError",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )


class RegionInstanceGroupManagersListInstanceConfigsResp(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        items (MutableSequence[google.cloud.compute_v1beta.types.PerInstanceConfig]):
            [Output Only] The list of PerInstanceConfig.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    items: MutableSequence["PerInstanceConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="PerInstanceConfig",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionInstanceGroupManagersListInstancesResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        managed_instances (MutableSequence[google.cloud.compute_v1beta.types.ManagedInstance]):
            A list of managed instances.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
    """

    @property
    def raw_page(self):
        return self

    managed_instances: MutableSequence["ManagedInstance"] = proto.RepeatedField(
        proto.MESSAGE,
        number=336219614,
        message="ManagedInstance",
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )


class RegionInstanceGroupManagersRecreateRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class RegionInstanceGroupManagersResizeAdvancedRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        no_creation_retries (bool):
            If this flag is true, the managed instance
            group attempts to create all instances initiated
            by this resize request only once. If there is an
            error during creation, the managed instance
            group does not retry create this instance, and
            we will decrease the targetSize of the request
            instead. If the flag is false, the group
            attempts to recreate each instance continuously
            until it succeeds. This flag matters only in the
            first attempt of creation of an instance. After
            an instance is successfully created while this
            flag is enabled, the instance behaves the same
            way as all the other instances created with a
            regular resize request. In particular, if a
            running instance dies unexpectedly at a later
            time and needs to be recreated, this mode does
            not affect the recreation behavior in that
            scenario. This flag is applicable only to the
            current resize request. It does not influence
            other resize requests in any way. You can see
            which instances ar being created in which mode
            by calling the get or listManagedInstances API.

            This field is a member of `oneof`_ ``_no_creation_retries``.
        target_size (int):
            The number of running instances that the
            managed instance group should maintain at any
            given time. The group automatically adds or
            removes instances to maintain the number of
            instances specified by this parameter.

            This field is a member of `oneof`_ ``_target_size``.
    """

    no_creation_retries: bool = proto.Field(
        proto.BOOL,
        number=39329444,
        optional=True,
    )
    target_size: int = proto.Field(
        proto.INT32,
        number=62880239,
        optional=True,
    )


class RegionInstanceGroupManagersResumeInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class RegionInstanceGroupManagersSetAutoHealingRequest(proto.Message):
    r"""

    Attributes:
        auto_healing_policies (MutableSequence[google.cloud.compute_v1beta.types.InstanceGroupManagerAutoHealingPolicy]):

    """

    auto_healing_policies: MutableSequence[
        "InstanceGroupManagerAutoHealingPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=456799109,
        message="InstanceGroupManagerAutoHealingPolicy",
    )


class RegionInstanceGroupManagersSetTargetPoolsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        target_pools (MutableSequence[str]):
            The URL of all TargetPool resources to which
            instances in the instanceGroup field are added.
            The target pools automatically apply to all of
            the instances in the managed instance group.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    target_pools: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=336072617,
    )


class RegionInstanceGroupManagersSetTemplateRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_template (str):
            URL of the InstanceTemplate resource from
            which all new instances will be created.

            This field is a member of `oneof`_ ``_instance_template``.
    """

    instance_template: str = proto.Field(
        proto.STRING,
        number=309248228,
        optional=True,
    )


class RegionInstanceGroupManagersStartInstancesRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[str]):
            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: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class RegionInstanceGroupManagersStopInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        force_stop (bool):
            If this flag is set to true, the Instance
            Group Manager will proceed to stop the
            instances, skipping initialization on them.

            This field is a member of `oneof`_ ``_force_stop``.
        instances (MutableSequence[str]):
            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].
    """

    force_stop: bool = proto.Field(
        proto.BOOL,
        number=134762710,
        optional=True,
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class RegionInstanceGroupManagersSuspendInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        force_suspend (bool):
            If this flag is set to true, the Instance
            Group Manager will proceed to suspend the
            instances, skipping initialization on them.

            This field is a member of `oneof`_ ``_force_suspend``.
        instances (MutableSequence[str]):
            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].
    """

    force_suspend: bool = proto.Field(
        proto.BOOL,
        number=27637480,
        optional=True,
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )


class RegionInstanceGroupsListInstances(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.InstanceWithNamedPorts]):
            A list of InstanceWithNamedPorts resources.
        kind (str):
            The resource type.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["InstanceWithNamedPorts"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="InstanceWithNamedPorts",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionInstanceGroupsListInstancesRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_state (str):
            Instances in which state should be returned.
            Valid options are: 'ALL', 'RUNNING'. By default,
            it lists all instances. Check the InstanceState
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_instance_state``.
        port_name (str):
            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.

            This field is a member of `oneof`_ ``_port_name``.
    """

    class InstanceState(proto.Enum):
        r"""Instances in which state should be returned. Valid options
        are: 'ALL', 'RUNNING'. By default, it lists all instances.

        Values:
            UNDEFINED_INSTANCE_STATE (0):
                A value indicating that the enum field is not
                set.
            ALL (64897):
                Matches any status of the instances, running,
                non-running and others.
            RUNNING (121282975):
                Instance is in RUNNING state if it is
                running.
        """
        UNDEFINED_INSTANCE_STATE = 0
        ALL = 64897
        RUNNING = 121282975

    instance_state: str = proto.Field(
        proto.STRING,
        number=92223591,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )


class RegionInstanceGroupsSetNamedPortsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            The fingerprint of the named ports
            information for this instance group. Use this
            optional property to prevent conflicts when
            multiple users change the named ports settings
            concurrently. Obtain the fingerprint with the
            instanceGroups.get method. Then, include the
            fingerprint in your request to ensure that you
            do not overwrite changes that were applied from
            another concurrent request.

            This field is a member of `oneof`_ ``_fingerprint``.
        named_ports (MutableSequence[google.cloud.compute_v1beta.types.NamedPort]):
            The list of named ports to set for this
            instance group.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    named_ports: MutableSequence["NamedPort"] = proto.RepeatedField(
        proto.MESSAGE,
        number=427598732,
        message="NamedPort",
    )


class RegionList(proto.Message):
    r"""Contains a list of region resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Region]):
            A list of Region resources.
        kind (str):
            [Output Only] Type of resource. Always compute#regionList
            for lists of regions.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Region"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Region",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RegionNetworkEndpointGroupsAttachEndpointsRequest(proto.Message):
    r"""

    Attributes:
        network_endpoints (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpoint]):
            The list of network endpoints to be attached.
    """

    network_endpoints: MutableSequence["NetworkEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=149850285,
        message="NetworkEndpoint",
    )


class RegionNetworkEndpointGroupsDetachEndpointsRequest(proto.Message):
    r"""

    Attributes:
        network_endpoints (MutableSequence[google.cloud.compute_v1beta.types.NetworkEndpoint]):
            The list of network endpoints to be detached.
    """

    network_endpoints: MutableSequence["NetworkEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=149850285,
        message="NetworkEndpoint",
    )


class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse(proto.Message):
    r"""

    Attributes:
        firewall_policys (MutableSequence[google.cloud.compute_v1beta.types.RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy]):
            [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.
        firewalls (MutableSequence[google.cloud.compute_v1beta.types.Firewall]):
            Effective firewalls on the network.
    """

    firewall_policys: MutableSequence[
        "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=410985794,
        message="RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy",
    )
    firewalls: MutableSequence["Firewall"] = proto.RepeatedField(
        proto.MESSAGE,
        number=272245619,
        message="Firewall",
    )


class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy(
    proto.Message
):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        display_name (str):
            [Output Only] The display name of the firewall policy.

            This field is a member of `oneof`_ ``_display_name``.
        name (str):
            [Output Only] The name of the firewall policy.

            This field is a member of `oneof`_ ``_name``.
        packet_mirroring_rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            [Output only] The packet mirroring rules that apply to the
            network.
        priority (int):
            [Output only] Priority of firewall policy association. Not
            applicable for type=HIERARCHY.

            This field is a member of `oneof`_ ``_priority``.
        rules (MutableSequence[google.cloud.compute_v1beta.types.FirewallPolicyRule]):
            [Output only] The rules that apply to the network.
        type_ (str):
            [Output Only] The type of the firewall policy. Can be one of
            HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL,
            SYSTEM_REGIONAL. Check the Type enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""[Output Only] The type of the firewall policy. Can be one of
        HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL,
        SYSTEM_REGIONAL.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            HIERARCHY (69902869):
                No description available.
            NETWORK (413984270):
                No description available.
            NETWORK_REGIONAL (190804272):
                No description available.
            SYSTEM_GLOBAL (60099507):
                No description available.
            SYSTEM_REGIONAL (161777199):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_TYPE = 0
        HIERARCHY = 69902869
        NETWORK = 413984270
        NETWORK_REGIONAL = 190804272
        SYSTEM_GLOBAL = 60099507
        SYSTEM_REGIONAL = 161777199
        UNSPECIFIED = 526786327

    display_name: str = proto.Field(
        proto.STRING,
        number=4473832,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    packet_mirroring_rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=531644356,
        message="FirewallPolicyRule",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    rules: MutableSequence["FirewallPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="FirewallPolicyRule",
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class RegionSetLabelsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        label_fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            The labels to set for this resource.
    """

    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )


class RegionSetPolicyRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bindings (MutableSequence[google.cloud.compute_v1beta.types.Binding]):
            Flatten Policy to create a backwacd
            compatible wire-format. Deprecated. Use 'policy'
            to specify bindings.
        etag (str):
            Flatten Policy to create a backward
            compatible wire-format. Deprecated. Use 'policy'
            to specify the etag.

            This field is a member of `oneof`_ ``_etag``.
        policy (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_policy``.
    """

    bindings: MutableSequence["Binding"] = proto.RepeatedField(
        proto.MESSAGE,
        number=403251854,
        message="Binding",
    )
    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    policy: "Policy" = proto.Field(
        proto.MESSAGE,
        number=91071794,
        optional=True,
        message="Policy",
    )


class RegionTargetHttpsProxiesSetSslCertificatesRequest(proto.Message):
    r"""

    Attributes:
        ssl_certificates (MutableSequence[str]):
            New set of SslCertificate resources to
            associate with this TargetHttpsProxy resource.
    """

    ssl_certificates: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=366006543,
    )


class RegionUrlMapsValidateRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        resource (google.cloud.compute_v1beta.types.UrlMap):
            Content of the UrlMap to be validated.

            This field is a member of `oneof`_ ``_resource``.
    """

    resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=195806222,
        optional=True,
        message="UrlMap",
    )


class RemoveAssociationFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.RemoveAssociation. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        name (str):
            Name for the attachment that will be removed.

            This field is a member of `oneof`_ ``_name``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveAssociationNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    NetworkFirewallPolicies.RemoveAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        name (str):
            Name for the attachment that will be removed.

            This field is a member of `oneof`_ ``_name``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveAssociationOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for
    OrganizationSecurityPolicies.RemoveAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name for the attachment that will be removed.

            This field is a member of `oneof`_ ``_name``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class RemoveAssociationRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.RemoveAssociation. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        name (str):
            Name for the association that will be
            removed.

            This field is a member of `oneof`_ ``_name``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveHealthCheckTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.RemoveHealthCheck. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_pool (str):
            Name of the target pool to remove health
            checks from.
        target_pools_remove_health_check_request_resource (google.cloud.compute_v1beta.types.TargetPoolsRemoveHealthCheckRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )
    target_pools_remove_health_check_request_resource: "TargetPoolsRemoveHealthCheckRequest" = proto.Field(
        proto.MESSAGE,
        number=304985011,
        message="TargetPoolsRemoveHealthCheckRequest",
    )


class RemoveInstanceTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.RemoveInstance. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_pool (str):
            Name of the TargetPool resource to remove
            instances from.
        target_pools_remove_instance_request_resource (google.cloud.compute_v1beta.types.TargetPoolsRemoveInstanceRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )
    target_pools_remove_instance_request_resource: "TargetPoolsRemoveInstanceRequest" = proto.Field(
        proto.MESSAGE,
        number=29548547,
        message="TargetPoolsRemoveInstanceRequest",
    )


class RemoveInstancesInstanceGroupRequest(proto.Message):
    r"""A request message for InstanceGroups.RemoveInstances. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group (str):
            The name of the instance group where the
            specified instances will be removed.
        instance_groups_remove_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupsRemoveInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the instance group
            is located.
    """

    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    instance_groups_remove_instances_request_resource: "InstanceGroupsRemoveInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=390981817,
        message="InstanceGroupsRemoveInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class RemovePacketMirroringRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for
    FirewallPolicies.RemovePacketMirroringRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        priority (int):
            The priority of the rule to remove from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemovePacketMirroringRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    NetworkFirewallPolicies.RemovePacketMirroringRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        priority (int):
            The priority of the rule to remove from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemovePeeringNetworkRequest(proto.Message):
    r"""A request message for Networks.RemovePeering. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network (str):
            Name of the network resource to remove
            peering from.
        networks_remove_peering_request_resource (google.cloud.compute_v1beta.types.NetworksRemovePeeringRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    networks_remove_peering_request_resource: "NetworksRemovePeeringRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=421162494,
            message="NetworksRemovePeeringRequest",
        )
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveResourcePoliciesDiskRequest(proto.Message):
    r"""A request message for Disks.RemoveResourcePolicies. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The disk name for this request.
        disks_remove_resource_policies_request_resource (google.cloud.compute_v1beta.types.DisksRemoveResourcePoliciesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    disks_remove_resource_policies_request_resource: "DisksRemoveResourcePoliciesRequest" = proto.Field(
        proto.MESSAGE,
        number=436756718,
        message="DisksRemoveResourcePoliciesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class RemoveResourcePoliciesInstanceRequest(proto.Message):
    r"""A request message for Instances.RemoveResourcePolicies. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            The instance name for this request.
        instances_remove_resource_policies_request_resource (google.cloud.compute_v1beta.types.InstancesRemoveResourcePoliciesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_remove_resource_policies_request_resource: "InstancesRemoveResourcePoliciesRequest" = proto.Field(
        proto.MESSAGE,
        number=49229558,
        message="InstancesRemoveResourcePoliciesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class RemoveResourcePoliciesRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.RemoveResourcePolicies. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The disk name for this request.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_disks_remove_resource_policies_request_resource (google.cloud.compute_v1beta.types.RegionDisksRemoveResourcePoliciesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_disks_remove_resource_policies_request_resource: "RegionDisksRemoveResourcePoliciesRequest" = proto.Field(
        proto.MESSAGE,
        number=8741283,
        message="RegionDisksRemoveResourcePoliciesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveRuleFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.RemoveRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        priority (int):
            The priority of the rule to remove from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveRuleNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.RemoveRule. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        priority (int):
            The priority of the rule to remove from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveRuleOrganizationSecurityPolicyRequest(proto.Message):
    r"""A request message for
    OrganizationSecurityPolicies.RemoveRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to remove from the
            security policy.

            This field is a member of `oneof`_ ``_priority``.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy (str):
            Name of the security policy to update.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class RemoveRuleRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.RemoveRule. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall_policy (str):
            Name of the firewall policy to update.
        priority (int):
            The priority of the rule to remove from the
            firewall policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall_policy: str = proto.Field(
        proto.STRING,
        number=498173265,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RemoveRuleRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.RemoveRule. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to remove from the
            security policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        security_policy (str):
            Name of the security policy to update.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class RemoveRuleSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.RemoveRule. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        priority (int):
            The priority of the rule to remove from the
            security policy.

            This field is a member of `oneof`_ ``_priority``.
        project (str):
            Project ID for this request.
        security_policy (str):
            Name of the security policy to update.
    """

    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
    )


class ReportHostAsFaultyInstanceRequest(proto.Message):
    r"""A request message for Instances.ReportHostAsFaulty. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        instances_report_host_as_faulty_request_resource (google.cloud.compute_v1beta.types.InstancesReportHostAsFaultyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_report_host_as_faulty_request_resource: "InstancesReportHostAsFaultyRequest" = proto.Field(
        proto.MESSAGE,
        number=494094886,
        message="InstancesReportHostAsFaultyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class RequestMirrorPolicy(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            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.

            This field is a member of `oneof`_ ``_backend_service``.
        mirror_percent (float):
            The percentage of requests to be mirrored to
            ``backend_service``.

            This field is a member of `oneof`_ ``_mirror_percent``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
        optional=True,
    )
    mirror_percent: float = proto.Field(
        proto.DOUBLE,
        number=277432261,
        optional=True,
    )


class RequestRemovePeeringNetworkRequest(proto.Message):
    r"""A request message for Networks.RequestRemovePeering. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network (str):
            Name of the network resource to remove
            peering from.
        networks_request_remove_peering_request_resource (google.cloud.compute_v1beta.types.NetworksRequestRemovePeeringRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    networks_request_remove_peering_request_resource: "NetworksRequestRemovePeeringRequest" = proto.Field(
        proto.MESSAGE,
        number=150860366,
        message="NetworksRequestRemovePeeringRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class Reservation(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        aggregate_reservation (google.cloud.compute_v1beta.types.AllocationAggregateReservation):
            Reservation for aggregated resources,
            providing shape flexibility.

            This field is a member of `oneof`_ ``_aggregate_reservation``.
        commitment (str):
            [Output Only] Full or partial URL to a parent commitment.
            This field displays for reservations that are tied to a
            commitment.

            This field is a member of `oneof`_ ``_commitment``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        delete_after_duration (google.cloud.compute_v1beta.types.Duration):
            Duration time relative to reservation
            creation when Compute Engine will automatically
            delete this resource.

            This field is a member of `oneof`_ ``_delete_after_duration``.
        delete_at_time (str):
            Absolute time in future when the reservation
            will be auto-deleted by Compute Engine.
            Timestamp is represented in RFC3339 text format.

            This field is a member of `oneof`_ ``_delete_at_time``.
        deployment_type (str):
            Specifies the deployment strategy for this
            reservation. Check the DeploymentType enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_deployment_type``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        enable_emergent_maintenance (bool):
            Indicates if this group of VMs have emergent
            maintenance enabled.

            This field is a member of `oneof`_ ``_enable_emergent_maintenance``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#reservations for reservations.

            This field is a member of `oneof`_ ``_kind``.
        linked_commitments (MutableSequence[str]):
            [Output Only] Full or partial URL to parent commitments.
            This field displays for reservations that are tied to
            multiple commitments.
        name (str):
            The name of the resource, provided by the client when
            initially creating the resource. The resource name must be
            1-63 characters long, and comply with RFC1035. Specifically,
            the name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        reservation_mode (str):
            [Output only] Indicates the reservation mode of the
            reservation. Check the ReservationMode enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_reservation_mode``.
        reservation_sharing_policy (google.cloud.compute_v1beta.types.AllocationReservationSharingPolicy):
            Specify the reservation sharing policy. If
            unspecified, the reservation will not be shared
            with Google Cloud managed services.

            This field is a member of `oneof`_ ``_reservation_sharing_policy``.
        resource_policies (MutableMapping[str, str]):
            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.
        resource_status (google.cloud.compute_v1beta.types.AllocationResourceStatus):
            [Output Only] Status information for Reservation resource.

            This field is a member of `oneof`_ ``_resource_status``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] Server-defined fully-qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        share_settings (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_share_settings``.
        specific_reservation (google.cloud.compute_v1beta.types.AllocationSpecificSKUReservation):
            Reservation for instances with specific
            machine shapes.

            This field is a member of `oneof`_ ``_specific_reservation``.
        specific_reservation_required (bool):
            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.

            This field is a member of `oneof`_ ``_specific_reservation_required``.
        status (str):
            [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. Check the Status enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_status``.
        zone (str):
            Zone in which the reservation resides. A zone
            must be provided if the reservation is created
            within a commitment.

            This field is a member of `oneof`_ ``_zone``.
    """

    class DeploymentType(proto.Enum):
        r"""Specifies the deployment strategy for this reservation.

        Values:
            UNDEFINED_DEPLOYMENT_TYPE (0):
                A value indicating that the enum field is not
                set.
            DENSE (64932607):
                The reserved capacity is made up of densely
                deployed reservation blocks.
            DEPLOYMENT_TYPE_UNSPECIFIED (234847180):
                No description available.
            FLEXIBLE (379880395):
                The reserved capacity is made up of highly
                flexible, logical reservation blocks.
        """
        UNDEFINED_DEPLOYMENT_TYPE = 0
        DENSE = 64932607
        DEPLOYMENT_TYPE_UNSPECIFIED = 234847180
        FLEXIBLE = 379880395

    class ReservationMode(proto.Enum):
        r"""[Output only] Indicates the reservation mode of the reservation.

        Values:
            UNDEFINED_RESERVATION_MODE (0):
                A value indicating that the enum field is not
                set.
            CALENDAR (67431230):
                The delivered reservations terminate at
                specified endtime along with terminating VMs
                running on it. The price for this reservation is
                different from on-demand. Currently offered for
                A3+ GPUs and TPUs only.
            DEFAULT (115302945):
                The delivered reservations do not terminate
                VMs at the end of reservations. On-demand
                pricing and available for all VM families. This
                is default mode.
            RESERVATION_MODE_UNSPECIFIED (233810606):
                No description available.
        """
        UNDEFINED_RESERVATION_MODE = 0
        CALENDAR = 67431230
        DEFAULT = 115302945
        RESERVATION_MODE_UNSPECIFIED = 233810606

    class Status(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Reservation resources are being allocated.
            DELETING (528602024):
                Reservation deletion is in progress.
            INVALID (530283991):
                No description available.
            READY (77848963):
                Reservation resources have been allocated,
                and the reservation is ready for use.
            UPDATING (494614342):
                Reservation update is in progress.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        INVALID = 530283991
        READY = 77848963
        UPDATING = 494614342

    aggregate_reservation: "AllocationAggregateReservation" = proto.Field(
        proto.MESSAGE,
        number=291567948,
        optional=True,
        message="AllocationAggregateReservation",
    )
    commitment: str = proto.Field(
        proto.STRING,
        number=482134805,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    delete_after_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=323997099,
        optional=True,
        message="Duration",
    )
    delete_at_time: str = proto.Field(
        proto.STRING,
        number=83294405,
        optional=True,
    )
    deployment_type: str = proto.Field(
        proto.STRING,
        number=396722292,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    enable_emergent_maintenance: bool = proto.Field(
        proto.BOOL,
        number=353759497,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    linked_commitments: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=470957784,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    reservation_mode: str = proto.Field(
        proto.STRING,
        number=277294646,
        optional=True,
    )
    reservation_sharing_policy: "AllocationReservationSharingPolicy" = proto.Field(
        proto.MESSAGE,
        number=205970120,
        optional=True,
        message="AllocationReservationSharingPolicy",
    )
    resource_policies: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=22220385,
    )
    resource_status: "AllocationResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=249429315,
        optional=True,
        message="AllocationResourceStatus",
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    share_settings: "ShareSettings" = proto.Field(
        proto.MESSAGE,
        number=266668163,
        optional=True,
        message="ShareSettings",
    )
    specific_reservation: "AllocationSpecificSKUReservation" = proto.Field(
        proto.MESSAGE,
        number=404901951,
        optional=True,
        message="AllocationSpecificSKUReservation",
    )
    specific_reservation_required: bool = proto.Field(
        proto.BOOL,
        number=226550687,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class ReservationAffinity(proto.Message):
    r"""Specifies the reservations that this instance can consume
    from.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        consume_reservation_type (str):
            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. Check the
            ConsumeReservationType enum for the list of possible values.

            This field is a member of `oneof`_ ``_consume_reservation_type``.
        key (str):
            Corresponds to the label key of a reservation resource. To
            target a SPECIFIC_RESERVATION by name, specify
            googleapis.com/reservation-name as the key and specify the
            name of your reservation as its value.

            This field is a member of `oneof`_ ``_key``.
        values (MutableSequence[str]):
            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.
    """

    class ConsumeReservationType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_CONSUME_RESERVATION_TYPE (0):
                A value indicating that the enum field is not
                set.
            ANY_RESERVATION (200008121):
                Consume any allocation available.
            NO_RESERVATION (169322030):
                Do not consume from any allocated capacity.
            SPECIFIC_RESERVATION (229889055):
                Must consume from a specific reservation.
                Must specify key value fields for specifying the
                reservations.
            SPECIFIC_THEN_ANY_RESERVATION (37025924):
                Prefer to consume from a specific
                reservation, but still consume any reservation
                available if the specified reservation is not
                available or exhausted. Must specify key value
                fields for specifying the reservations.
            SPECIFIC_THEN_NO_RESERVATION (406522371):
                Prefer to consume from a specific
                reservation, but still consume from the
                on-demand pool if the specified reservation is
                exhausted. Must specify key value fields for
                specifying the reservations.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_CONSUME_RESERVATION_TYPE = 0
        ANY_RESERVATION = 200008121
        NO_RESERVATION = 169322030
        SPECIFIC_RESERVATION = 229889055
        SPECIFIC_THEN_ANY_RESERVATION = 37025924
        SPECIFIC_THEN_NO_RESERVATION = 406522371
        UNSPECIFIED = 526786327

    consume_reservation_type: str = proto.Field(
        proto.STRING,
        number=300736944,
        optional=True,
    )
    key: str = proto.Field(
        proto.STRING,
        number=106079,
        optional=True,
    )
    values: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=249928994,
    )


class ReservationAggregatedList(proto.Message):
    r"""Contains a list of reservations.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.ReservationsScopedList]):
            A list of Allocation resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "ReservationsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="ReservationsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ReservationBlock(proto.Message):
    r"""Represents a reservation block resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        count (int):
            [Output Only] The number of resources that are allocated in
            this reservation block.

            This field is a member of `oneof`_ ``_count``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        in_use_count (int):
            [Output Only] The number of instances that are currently in
            use on this reservation block.

            This field is a member of `oneof`_ ``_in_use_count``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#reservationBlock for reservation blocks.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            [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]>`__?

            This field is a member of `oneof`_ ``_name``.
        physical_topology (google.cloud.compute_v1beta.types.ReservationBlockPhysicalTopology):
            [Output Only] The physical topology of the reservation
            block.

            This field is a member of `oneof`_ ``_physical_topology``.
        reservation_maintenance (google.cloud.compute_v1beta.types.GroupMaintenanceInfo):
            [Output Only] Maintenance information for this reservation
            block.

            This field is a member of `oneof`_ ``_reservation_maintenance``.
        self_link (str):
            [Output Only] Server-defined fully-qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        status (str):
            [Output Only] Status of the reservation block. Check the
            Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        zone (str):
            [Output Only] Zone in which the reservation block resides.

            This field is a member of `oneof`_ ``_zone``.
    """

    class Status(proto.Enum):
        r"""[Output Only] Status of the reservation block.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Resources are being allocated for the
                reservation block.
            DELETING (528602024):
                Reservation block is currently being deleted.
            INVALID (530283991):
                No description available.
            READY (77848963):
                Reservation block has allocated all its
                resources.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        INVALID = 530283991
        READY = 77848963

    count: int = proto.Field(
        proto.INT32,
        number=94851343,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    in_use_count: int = proto.Field(
        proto.INT32,
        number=493458877,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    physical_topology: "ReservationBlockPhysicalTopology" = proto.Field(
        proto.MESSAGE,
        number=279778519,
        optional=True,
        message="ReservationBlockPhysicalTopology",
    )
    reservation_maintenance: "GroupMaintenanceInfo" = proto.Field(
        proto.MESSAGE,
        number=340607776,
        optional=True,
        message="GroupMaintenanceInfo",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class ReservationBlockPhysicalTopology(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        block (str):
            The hash of the capacity block within the
            cluster.

            This field is a member of `oneof`_ ``_block``.
        cluster (str):
            The cluster name of the reservation block.

            This field is a member of `oneof`_ ``_cluster``.
    """

    block: str = proto.Field(
        proto.STRING,
        number=93832333,
        optional=True,
    )
    cluster: str = proto.Field(
        proto.STRING,
        number=335221242,
        optional=True,
    )


class ReservationBlocksGetResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        resource (google.cloud.compute_v1beta.types.ReservationBlock):

            This field is a member of `oneof`_ ``_resource``.
    """

    resource: "ReservationBlock" = proto.Field(
        proto.MESSAGE,
        number=195806222,
        optional=True,
        message="ReservationBlock",
    )


class ReservationBlocksListResponse(proto.Message):
    r"""A list of reservation blocks under a single reservation.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            Unique identifier for the resource; defined
            by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.ReservationBlock]):
            A list of reservation block resources.
        kind (str):
            Type of the resource. Always
            compute#reservationBlock for a list of
            reservation blocks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["ReservationBlock"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="ReservationBlock",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ReservationList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Reservation]):
            [Output Only] A list of Allocation resources.
        kind (str):
            [Output Only] Type of resource.Always
            compute#reservationsList for listsof reservations

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Reservation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Reservation",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ReservationsBlocksPerformMaintenanceRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        maintenance_scope (str):
            Specifies if all, running or unused hosts are
            in scope for this request. Check the
            MaintenanceScope enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_maintenance_scope``.
    """

    class MaintenanceScope(proto.Enum):
        r"""Specifies if all, running or unused hosts are in scope for
        this request.

        Values:
            UNDEFINED_MAINTENANCE_SCOPE (0):
                A value indicating that the enum field is not
                set.
            ALL (64897):
                Trigger maintenance for all hosts belonging
                to this reservation irrespective of whether VMs
                are running on them or not.
            MAINTENANCE_SCOPE_UNSPECIFIED (78827328):
                Internal only
            RUNNING_VMS (535770588):
                Trigger maintenance only on the hosts
                belonging to this reservation which have VMs
                running on them.
            UNUSED_CAPACITY (212724995):
                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
        """
        UNDEFINED_MAINTENANCE_SCOPE = 0
        ALL = 64897
        MAINTENANCE_SCOPE_UNSPECIFIED = 78827328
        RUNNING_VMS = 535770588
        UNUSED_CAPACITY = 212724995

    maintenance_scope: str = proto.Field(
        proto.STRING,
        number=140687912,
        optional=True,
    )


class ReservationsPerformMaintenanceRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        maintenance_scope (str):
            Specifies if all, running or unused hosts are
            in scope for this request. Check the
            MaintenanceScope enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_maintenance_scope``.
    """

    class MaintenanceScope(proto.Enum):
        r"""Specifies if all, running or unused hosts are in scope for
        this request.

        Values:
            UNDEFINED_MAINTENANCE_SCOPE (0):
                A value indicating that the enum field is not
                set.
            ALL (64897):
                Trigger maintenance for all hosts belonging
                to this reservation irrespective of whether VMs
                are running on them or not.
            MAINTENANCE_SCOPE_UNSPECIFIED (78827328):
                Internal only
            RUNNING_VMS (535770588):
                Trigger maintenance only on the hosts
                belonging to this reservation which have VMs
                running on them.
            UNUSED_CAPACITY (212724995):
                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
        """
        UNDEFINED_MAINTENANCE_SCOPE = 0
        ALL = 64897
        MAINTENANCE_SCOPE_UNSPECIFIED = 78827328
        RUNNING_VMS = 535770588
        UNUSED_CAPACITY = 212724995

    maintenance_scope: str = proto.Field(
        proto.STRING,
        number=140687912,
        optional=True,
    )


class ReservationsResizeRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        specific_sku_count (int):
            Number of allocated resources can be resized
            with minimum = 1 and maximum = 1000.

            This field is a member of `oneof`_ ``_specific_sku_count``.
    """

    specific_sku_count: int = proto.Field(
        proto.INT64,
        number=13890720,
        optional=True,
    )


class ReservationsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        reservations (MutableSequence[google.cloud.compute_v1beta.types.Reservation]):
            A list of reservations contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of reservations when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    reservations: MutableSequence["Reservation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=399717927,
        message="Reservation",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ResetInstanceRequest(proto.Message):
    r"""A request message for Instances.Reset. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ResizeAdvancedInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.ResizeAdvanced.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_resize_advanced_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersResizeAdvancedRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_resize_advanced_request_resource: "InstanceGroupManagersResizeAdvancedRequest" = proto.Field(
        proto.MESSAGE,
        number=95148991,
        message="InstanceGroupManagersResizeAdvancedRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ResizeAdvancedRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.ResizeAdvanced. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            must be a string that meets the requirements in
            RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request. It
            must be a string that meets the requirements in
            RFC1035.
        region_instance_group_managers_resize_advanced_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersResizeAdvancedRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_resize_advanced_request_resource: "RegionInstanceGroupManagersResizeAdvancedRequest" = proto.Field(
        proto.MESSAGE,
        number=331077290,
        message="RegionInstanceGroupManagersResizeAdvancedRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class ResizeDiskRequest(proto.Message):
    r"""A request message for Disks.Resize. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The name of the persistent disk.
        disks_resize_request_resource (google.cloud.compute_v1beta.types.DisksResizeRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    disks_resize_request_resource: "DisksResizeRequest" = proto.Field(
        proto.MESSAGE,
        number=78307616,
        message="DisksResizeRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ResizeInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.Resize. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        size (int):
            The number of running instances that the
            managed instance group should maintain at any
            given time. The group automatically adds or
            removes instances to maintain the number of
            instances specified by this parameter.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    size: int = proto.Field(
        proto.INT32,
        number=3530753,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ResizeRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.Resize. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            Name of the regional persistent disk.
        project (str):
            The project ID for this request.
        region (str):
            Name of the region for this request.
        region_disks_resize_request_resource (google.cloud.compute_v1beta.types.RegionDisksResizeRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_disks_resize_request_resource: "RegionDisksResizeRequest" = proto.Field(
        proto.MESSAGE,
        number=446633237,
        message="RegionDisksResizeRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class ResizeRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.Resize. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        size (int):
            Number of instances that should exist in this
            instance group manager.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    size: int = proto.Field(
        proto.INT32,
        number=3530753,
    )


class ResizeReservationRequest(proto.Message):
    r"""A request message for Reservations.Resize. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        reservation (str):
            Name of the reservation to update.
        reservations_resize_request_resource (google.cloud.compute_v1beta.types.ReservationsResizeRequest):
            The body resource for this request
        zone (str):
            Name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    reservations_resize_request_resource: "ReservationsResizeRequest" = proto.Field(
        proto.MESSAGE,
        number=389262801,
        message="ReservationsResizeRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ResourceCommitment(proto.Message):
    r"""Commitment for a particular hardware resource (a commitment
    is composed of one or more of these).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerator_type (str):
            Name of the accelerator type or GPU resource.
            Specify this field only when the type of
            hardware resource is ACCELERATOR.

            This field is a member of `oneof`_ ``_accelerator_type``.
        amount (int):
            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.

            This field is a member of `oneof`_ ``_amount``.
        type_ (str):
            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. Check the Type enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            ACCELERATOR (429815371):
                No description available.
            LOCAL_SSD (508934896):
                No description available.
            MEMORY (123056385):
                No description available.
            UNSPECIFIED (526786327):
                No description available.
            VCPU (2628978):
                No description available.
        """
        UNDEFINED_TYPE = 0
        ACCELERATOR = 429815371
        LOCAL_SSD = 508934896
        MEMORY = 123056385
        UNSPECIFIED = 526786327
        VCPU = 2628978

    accelerator_type: str = proto.Field(
        proto.STRING,
        number=138031246,
        optional=True,
    )
    amount: int = proto.Field(
        proto.INT64,
        number=196759640,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class ResourceGroupReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        group (str):
            A URI referencing one of the instance groups
            or network endpoint groups listed in the backend
            service.

            This field is a member of `oneof`_ ``_group``.
    """

    group: str = proto.Field(
        proto.STRING,
        number=98629247,
        optional=True,
    )


class ResourcePoliciesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        resource_policies (MutableSequence[google.cloud.compute_v1beta.types.ResourcePolicy]):
            A list of resourcePolicies contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of resourcePolicies when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    resource_policies: MutableSequence["ResourcePolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=22220385,
        message="ResourcePolicy",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ResourcePolicy(proto.Message):
    r"""Represents a Resource Policy resource. You can use resource
    policies to schedule actions for some Compute Engine resources.
    For example, you can use them to schedule persistent disk
    snapshots.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):

            This field is a member of `oneof`_ ``_description``.
        disk_consistency_group_policy (google.cloud.compute_v1beta.types.ResourcePolicyDiskConsistencyGroupPolicy):
            Resource policy for disk consistency groups.

            This field is a member of `oneof`_ ``_disk_consistency_group_policy``.
        group_placement_policy (google.cloud.compute_v1beta.types.ResourcePolicyGroupPlacementPolicy):
            Resource policy for instances for placement
            configuration.

            This field is a member of `oneof`_ ``_group_placement_policy``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        instance_schedule_policy (google.cloud.compute_v1beta.types.ResourcePolicyInstanceSchedulePolicy):
            Resource policy for scheduling instance
            operations.

            This field is a member of `oneof`_ ``_instance_schedule_policy``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#resource_policies for resource policies.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            The name of the resource, provided by the client when
            initially creating the resource. The resource name must be
            1-63 characters long, and comply with RFC1035. Specifically,
            the name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        region (str):

            This field is a member of `oneof`_ ``_region``.
        resource_status (google.cloud.compute_v1beta.types.ResourcePolicyResourceStatus):
            [Output Only] The system status of the resource policy.

            This field is a member of `oneof`_ ``_resource_status``.
        self_link (str):
            [Output Only] Server-defined fully-qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        snapshot_schedule_policy (google.cloud.compute_v1beta.types.ResourcePolicySnapshotSchedulePolicy):
            Resource policy for persistent disks for
            creating snapshots.

            This field is a member of `oneof`_ ``_snapshot_schedule_policy``.
        status (str):
            [Output Only] The status of resource policy creation. Check
            the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        workload_policy (google.cloud.compute_v1beta.types.ResourcePolicyWorkloadPolicy):

            This field is a member of `oneof`_ ``_workload_policy``.
    """

    class Status(proto.Enum):
        r"""[Output Only] The status of resource policy creation.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Resource policy is being created.
            DELETING (528602024):
                Resource policy is being deleted.
            EXPIRED (482489093):
                Resource policy is expired and will not run
                again.
            INVALID (530283991):
                No description available.
            READY (77848963):
                Resource policy is ready to be used.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        EXPIRED = 482489093
        INVALID = 530283991
        READY = 77848963

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disk_consistency_group_policy: "ResourcePolicyDiskConsistencyGroupPolicy" = (
        proto.Field(
            proto.MESSAGE,
            number=473727515,
            optional=True,
            message="ResourcePolicyDiskConsistencyGroupPolicy",
        )
    )
    group_placement_policy: "ResourcePolicyGroupPlacementPolicy" = proto.Field(
        proto.MESSAGE,
        number=10931596,
        optional=True,
        message="ResourcePolicyGroupPlacementPolicy",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instance_schedule_policy: "ResourcePolicyInstanceSchedulePolicy" = proto.Field(
        proto.MESSAGE,
        number=344877104,
        optional=True,
        message="ResourcePolicyInstanceSchedulePolicy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    resource_status: "ResourcePolicyResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=249429315,
        optional=True,
        message="ResourcePolicyResourceStatus",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    snapshot_schedule_policy: "ResourcePolicySnapshotSchedulePolicy" = proto.Field(
        proto.MESSAGE,
        number=218131295,
        optional=True,
        message="ResourcePolicySnapshotSchedulePolicy",
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    workload_policy: "ResourcePolicyWorkloadPolicy" = proto.Field(
        proto.MESSAGE,
        number=114721530,
        optional=True,
        message="ResourcePolicyWorkloadPolicy",
    )


class ResourcePolicyAggregatedList(proto.Message):
    r"""Contains a list of resourcePolicies.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.ResourcePoliciesScopedList]):
            A list of ResourcePolicy resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "ResourcePoliciesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="ResourcePoliciesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ResourcePolicyDailyCycle(proto.Message):
    r"""Time window specified for daily operations.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        days_in_cycle (int):
            Defines a schedule with units measured in
            days. The value determines how many days pass
            between the start of each cycle.

            This field is a member of `oneof`_ ``_days_in_cycle``.
        duration (str):
            [Output only] A predetermined duration for the window,
            automatically chosen to be the smallest possible in the
            given scenario.

            This field is a member of `oneof`_ ``_duration``.
        start_time (str):
            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.

            This field is a member of `oneof`_ ``_start_time``.
    """

    days_in_cycle: int = proto.Field(
        proto.INT32,
        number=369790004,
        optional=True,
    )
    duration: str = proto.Field(
        proto.STRING,
        number=155471252,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class ResourcePolicyDiskConsistencyGroupPolicy(proto.Message):
    r"""Resource policy for disk consistency groups."""


class ResourcePolicyGroupPlacementPolicy(proto.Message):
    r"""A GroupPlacementPolicy specifies resource placement
    configuration. It specifies the failure bucket separation


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        availability_domain_count (int):
            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.

            This field is a member of `oneof`_ ``_availability_domain_count``.
        collocation (str):
            Specifies network collocation
            Check the Collocation enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_collocation``.
        gpu_topology (str):
            Specifies the shape of the GPU slice, in
            slice based GPU families eg. A4X.

            This field is a member of `oneof`_ ``_gpu_topology``.
        max_distance (int):
            Specifies the number of max logical switches.

            This field is a member of `oneof`_ ``_max_distance``.
        slice_count (int):
            Specifies the number of slices in a
            multislice workload.

            This field is a member of `oneof`_ ``_slice_count``.
        tpu_topology (str):
            Specifies the shape of the TPU slice

            This field is a member of `oneof`_ ``_tpu_topology``.
        vm_count (int):
            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.

            This field is a member of `oneof`_ ``_vm_count``.
    """

    class Collocation(proto.Enum):
        r"""Specifies network collocation

        Values:
            UNDEFINED_COLLOCATION (0):
                A value indicating that the enum field is not
                set.
            COLLOCATED (103257554):
                No description available.
            UNSPECIFIED_COLLOCATION (464308205):
                No description available.
        """
        UNDEFINED_COLLOCATION = 0
        COLLOCATED = 103257554
        UNSPECIFIED_COLLOCATION = 464308205

    availability_domain_count: int = proto.Field(
        proto.INT32,
        number=12453432,
        optional=True,
    )
    collocation: str = proto.Field(
        proto.STRING,
        number=511156533,
        optional=True,
    )
    gpu_topology: str = proto.Field(
        proto.STRING,
        number=247948450,
        optional=True,
    )
    max_distance: int = proto.Field(
        proto.INT32,
        number=172943472,
        optional=True,
    )
    slice_count: int = proto.Field(
        proto.INT32,
        number=343342114,
        optional=True,
    )
    tpu_topology: str = proto.Field(
        proto.STRING,
        number=315411061,
        optional=True,
    )
    vm_count: int = proto.Field(
        proto.INT32,
        number=261463431,
        optional=True,
    )


class ResourcePolicyHourlyCycle(proto.Message):
    r"""Time window specified for hourly operations.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        duration (str):
            [Output only] Duration of the time window, automatically
            chosen to be smallest possible in the given scenario.

            This field is a member of `oneof`_ ``_duration``.
        hours_in_cycle (int):
            Defines a schedule with units measured in
            hours. The value determines how many hours pass
            between the start of each cycle.

            This field is a member of `oneof`_ ``_hours_in_cycle``.
        start_time (str):
            Time within the window to start the operations. It must be
            in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.

            This field is a member of `oneof`_ ``_start_time``.
    """

    duration: str = proto.Field(
        proto.STRING,
        number=155471252,
        optional=True,
    )
    hours_in_cycle: int = proto.Field(
        proto.INT32,
        number=526763132,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class ResourcePolicyInstanceSchedulePolicy(proto.Message):
    r"""An InstanceSchedulePolicy specifies when and how frequent
    certain operations are performed on the instance.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        expiration_time (str):
            The expiration time of the schedule. The
            timestamp is an RFC3339 string.

            This field is a member of `oneof`_ ``_expiration_time``.
        start_time (str):
            The start time of the schedule. The timestamp
            is an RFC3339 string.

            This field is a member of `oneof`_ ``_start_time``.
        time_zone (str):
            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.

            This field is a member of `oneof`_ ``_time_zone``.
        vm_start_schedule (google.cloud.compute_v1beta.types.ResourcePolicyInstanceSchedulePolicySchedule):
            Specifies the schedule for starting
            instances.

            This field is a member of `oneof`_ ``_vm_start_schedule``.
        vm_stop_schedule (google.cloud.compute_v1beta.types.ResourcePolicyInstanceSchedulePolicySchedule):
            Specifies the schedule for stopping
            instances.

            This field is a member of `oneof`_ ``_vm_stop_schedule``.
    """

    expiration_time: str = proto.Field(
        proto.STRING,
        number=230299229,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )
    time_zone: str = proto.Field(
        proto.STRING,
        number=36848094,
        optional=True,
    )
    vm_start_schedule: "ResourcePolicyInstanceSchedulePolicySchedule" = proto.Field(
        proto.MESSAGE,
        number=17762396,
        optional=True,
        message="ResourcePolicyInstanceSchedulePolicySchedule",
    )
    vm_stop_schedule: "ResourcePolicyInstanceSchedulePolicySchedule" = proto.Field(
        proto.MESSAGE,
        number=426242732,
        optional=True,
        message="ResourcePolicyInstanceSchedulePolicySchedule",
    )


class ResourcePolicyInstanceSchedulePolicySchedule(proto.Message):
    r"""Schedule for an instance operation.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        schedule (str):
            Specifies the frequency for the operation,
            using the unix-cron format.

            This field is a member of `oneof`_ ``_schedule``.
    """

    schedule: str = proto.Field(
        proto.STRING,
        number=375820951,
        optional=True,
    )


class ResourcePolicyList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.ResourcePolicy]):
            [Output Only] A list of ResourcePolicy resources.
        kind (str):
            [Output Only] Type of resource.Always
            compute#resourcePoliciesList for listsof resourcePolicies

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["ResourcePolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="ResourcePolicy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ResourcePolicyResourceStatus(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_schedule_policy (google.cloud.compute_v1beta.types.ResourcePolicyResourceStatusInstanceSchedulePolicyStatus):
            [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.

            This field is a member of `oneof`_ ``_instance_schedule_policy``.
    """

    instance_schedule_policy: "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus" = proto.Field(
        proto.MESSAGE,
        number=344877104,
        optional=True,
        message="ResourcePolicyResourceStatusInstanceSchedulePolicyStatus",
    )


class ResourcePolicyResourceStatusInstanceSchedulePolicyStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        last_run_start_time (str):
            [Output Only] The last time the schedule successfully ran.
            The timestamp is an RFC3339 string.

            This field is a member of `oneof`_ ``_last_run_start_time``.
        next_run_start_time (str):
            [Output Only] The next time the schedule is planned to run.
            The actual time might be slightly different. The timestamp
            is an RFC3339 string.

            This field is a member of `oneof`_ ``_next_run_start_time``.
    """

    last_run_start_time: str = proto.Field(
        proto.STRING,
        number=303069063,
        optional=True,
    )
    next_run_start_time: str = proto.Field(
        proto.STRING,
        number=318642570,
        optional=True,
    )


class ResourcePolicySnapshotSchedulePolicy(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        retention_policy (google.cloud.compute_v1beta.types.ResourcePolicySnapshotSchedulePolicyRetentionPolicy):
            Retention policy applied to snapshots created
            by this resource policy.

            This field is a member of `oneof`_ ``_retention_policy``.
        schedule (google.cloud.compute_v1beta.types.ResourcePolicySnapshotSchedulePolicySchedule):
            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.

            This field is a member of `oneof`_ ``_schedule``.
        snapshot_properties (google.cloud.compute_v1beta.types.ResourcePolicySnapshotSchedulePolicySnapshotProperties):
            Properties with which snapshots are created
            such as labels, encryption keys.

            This field is a member of `oneof`_ ``_snapshot_properties``.
    """

    retention_policy: "ResourcePolicySnapshotSchedulePolicyRetentionPolicy" = (
        proto.Field(
            proto.MESSAGE,
            number=68625779,
            optional=True,
            message="ResourcePolicySnapshotSchedulePolicyRetentionPolicy",
        )
    )
    schedule: "ResourcePolicySnapshotSchedulePolicySchedule" = proto.Field(
        proto.MESSAGE,
        number=375820951,
        optional=True,
        message="ResourcePolicySnapshotSchedulePolicySchedule",
    )
    snapshot_properties: "ResourcePolicySnapshotSchedulePolicySnapshotProperties" = (
        proto.Field(
            proto.MESSAGE,
            number=185371278,
            optional=True,
            message="ResourcePolicySnapshotSchedulePolicySnapshotProperties",
        )
    )


class ResourcePolicySnapshotSchedulePolicyRetentionPolicy(proto.Message):
    r"""Policy for retention of scheduled snapshots.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_retention_days (int):
            Maximum age of the snapshot that is allowed
            to be kept.

            This field is a member of `oneof`_ ``_max_retention_days``.
        on_source_disk_delete (str):
            Specifies the behavior to apply to scheduled
            snapshots when the source disk is deleted. Check
            the OnSourceDiskDelete enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_on_source_disk_delete``.
    """

    class OnSourceDiskDelete(proto.Enum):
        r"""Specifies the behavior to apply to scheduled snapshots when
        the source disk is deleted.

        Values:
            UNDEFINED_ON_SOURCE_DISK_DELETE (0):
                A value indicating that the enum field is not
                set.
            APPLY_RETENTION_POLICY (535071332):
                No description available.
            KEEP_AUTO_SNAPSHOTS (258925689):
                No description available.
            UNSPECIFIED_ON_SOURCE_DISK_DELETE (239140769):
                No description available.
        """
        UNDEFINED_ON_SOURCE_DISK_DELETE = 0
        APPLY_RETENTION_POLICY = 535071332
        KEEP_AUTO_SNAPSHOTS = 258925689
        UNSPECIFIED_ON_SOURCE_DISK_DELETE = 239140769

    max_retention_days: int = proto.Field(
        proto.INT32,
        number=324296979,
        optional=True,
    )
    on_source_disk_delete: str = proto.Field(
        proto.STRING,
        number=321955529,
        optional=True,
    )


class ResourcePolicySnapshotSchedulePolicySchedule(proto.Message):
    r"""A schedule for disks where the schedueled operations are
    performed.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        daily_schedule (google.cloud.compute_v1beta.types.ResourcePolicyDailyCycle):

            This field is a member of `oneof`_ ``_daily_schedule``.
        hourly_schedule (google.cloud.compute_v1beta.types.ResourcePolicyHourlyCycle):

            This field is a member of `oneof`_ ``_hourly_schedule``.
        weekly_schedule (google.cloud.compute_v1beta.types.ResourcePolicyWeeklyCycle):

            This field is a member of `oneof`_ ``_weekly_schedule``.
    """

    daily_schedule: "ResourcePolicyDailyCycle" = proto.Field(
        proto.MESSAGE,
        number=86159869,
        optional=True,
        message="ResourcePolicyDailyCycle",
    )
    hourly_schedule: "ResourcePolicyHourlyCycle" = proto.Field(
        proto.MESSAGE,
        number=38328485,
        optional=True,
        message="ResourcePolicyHourlyCycle",
    )
    weekly_schedule: "ResourcePolicyWeeklyCycle" = proto.Field(
        proto.MESSAGE,
        number=359548053,
        optional=True,
        message="ResourcePolicyWeeklyCycle",
    )


class ResourcePolicySnapshotSchedulePolicySnapshotProperties(proto.Message):
    r"""Specified snapshot properties for scheduled snapshots created
    by this policy.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        chain_name (str):
            Chain name that the snapshot is created in.

            This field is a member of `oneof`_ ``_chain_name``.
        guest_flush (bool):
            Indication to perform a 'guest aware'
            snapshot.

            This field is a member of `oneof`_ ``_guest_flush``.
        labels (MutableMapping[str, str]):
            Labels to apply to scheduled snapshots. These
            can be later modified by the setLabels method.
            Label values may be empty.
        region (str):
            Region where the snapshot is scoped to.

            This field is a member of `oneof`_ ``_region``.
        storage_locations (MutableSequence[str]):
            Cloud Storage bucket storage location of the
            auto snapshot (regional or multi-regional).
    """

    chain_name: str = proto.Field(
        proto.STRING,
        number=68644169,
        optional=True,
    )
    guest_flush: bool = proto.Field(
        proto.BOOL,
        number=385550813,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    storage_locations: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=328005274,
    )


class ResourcePolicyWeeklyCycle(proto.Message):
    r"""Time window specified for weekly operations.

    Attributes:
        day_of_weeks (MutableSequence[google.cloud.compute_v1beta.types.ResourcePolicyWeeklyCycleDayOfWeek]):
            Up to 7 intervals/windows, one for each day
            of the week.
    """

    day_of_weeks: MutableSequence[
        "ResourcePolicyWeeklyCycleDayOfWeek"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=257871834,
        message="ResourcePolicyWeeklyCycleDayOfWeek",
    )


class ResourcePolicyWeeklyCycleDayOfWeek(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        day (str):
            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. Check the Day enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_day``.
        duration (str):
            [Output only] Duration of the time window, automatically
            chosen to be smallest possible in the given scenario.

            This field is a member of `oneof`_ ``_duration``.
        start_time (str):
            Time within the window to start the operations. It must be
            in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.

            This field is a member of `oneof`_ ``_start_time``.
    """

    class Day(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_DAY (0):
                A value indicating that the enum field is not
                set.
            FRIDAY (471398751):
                No description available.
            INVALID (530283991):
                No description available.
            MONDAY (132310288):
                No description available.
            SATURDAY (279037881):
                No description available.
            SUNDAY (309626320):
                No description available.
            THURSDAY (207198682):
                No description available.
            TUESDAY (277509677):
                No description available.
            WEDNESDAY (422029110):
                No description available.
        """
        UNDEFINED_DAY = 0
        FRIDAY = 471398751
        INVALID = 530283991
        MONDAY = 132310288
        SATURDAY = 279037881
        SUNDAY = 309626320
        THURSDAY = 207198682
        TUESDAY = 277509677
        WEDNESDAY = 422029110

    day: str = proto.Field(
        proto.STRING,
        number=99228,
        optional=True,
    )
    duration: str = proto.Field(
        proto.STRING,
        number=155471252,
        optional=True,
    )
    start_time: str = proto.Field(
        proto.STRING,
        number=37467274,
        optional=True,
    )


class ResourcePolicyWorkloadPolicy(proto.Message):
    r"""Represents the workload policy.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        accelerator_topology (str):

            This field is a member of `oneof`_ ``_accelerator_topology``.
        max_topology_distance (str):
            Check the MaxTopologyDistance enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_max_topology_distance``.
        type_ (str):
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class MaxTopologyDistance(proto.Enum):
        r"""

        Values:
            UNDEFINED_MAX_TOPOLOGY_DISTANCE (0):
                A value indicating that the enum field is not
                set.
            BLOCK (63294573):
                VMs must be provisioned in the same block.
            CLUSTER (516333018):
                VMs must be provisioned in the same cluster.
            SUBBLOCK (316202573):
                VMs must be provisioned in the same subblock.
        """
        UNDEFINED_MAX_TOPOLOGY_DISTANCE = 0
        BLOCK = 63294573
        CLUSTER = 516333018
        SUBBLOCK = 316202573

    class Type(proto.Enum):
        r"""

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            HIGH_AVAILABILITY (409487576):
                VMs will be provisioned in such a way which
                provides high availability.
            HIGH_THROUGHPUT (146499815):
                VMs will be provisioned in such a way which
                provides high throughput.
        """
        UNDEFINED_TYPE = 0
        HIGH_AVAILABILITY = 409487576
        HIGH_THROUGHPUT = 146499815

    accelerator_topology: str = proto.Field(
        proto.STRING,
        number=389323203,
        optional=True,
    )
    max_topology_distance: str = proto.Field(
        proto.STRING,
        number=7521706,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class ResourceStatus(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        physical_host (str):
            [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.

            This field is a member of `oneof`_ ``_physical_host``.
        physical_host_topology (google.cloud.compute_v1beta.types.ResourceStatusPhysicalHostTopology):
            [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.

            This field is a member of `oneof`_ ``_physical_host_topology``.
        scheduling (google.cloud.compute_v1beta.types.ResourceStatusScheduling):

            This field is a member of `oneof`_ ``_scheduling``.
        shutdown_details (google.cloud.compute_v1beta.types.ResourceStatusShutdownDetails):
            [Output Only] Details about the instance stopping state.

            This field is a member of `oneof`_ ``_shutdown_details``.
        upcoming_maintenance (google.cloud.compute_v1beta.types.UpcomingMaintenance):

            This field is a member of `oneof`_ ``_upcoming_maintenance``.
    """

    physical_host: str = proto.Field(
        proto.STRING,
        number=464370704,
        optional=True,
    )
    physical_host_topology: "ResourceStatusPhysicalHostTopology" = proto.Field(
        proto.MESSAGE,
        number=390842814,
        optional=True,
        message="ResourceStatusPhysicalHostTopology",
    )
    scheduling: "ResourceStatusScheduling" = proto.Field(
        proto.MESSAGE,
        number=386688404,
        optional=True,
        message="ResourceStatusScheduling",
    )
    shutdown_details: "ResourceStatusShutdownDetails" = proto.Field(
        proto.MESSAGE,
        number=15198553,
        optional=True,
        message="ResourceStatusShutdownDetails",
    )
    upcoming_maintenance: "UpcomingMaintenance" = proto.Field(
        proto.MESSAGE,
        number=227348592,
        optional=True,
        message="UpcomingMaintenance",
    )


class ResourceStatusPhysicalHostTopology(proto.Message):
    r"""Represents the physical host topology of the host on which
    the VM is running.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        block (str):
            [Output Only] The ID of the block in which the running
            instance is located. Instances within the same block
            experience low network latency.

            This field is a member of `oneof`_ ``_block``.
        cluster (str):
            [Output Only] The global name of the Compute Engine cluster
            where the running instance is located.

            This field is a member of `oneof`_ ``_cluster``.
        host (str):
            [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.

            This field is a member of `oneof`_ ``_host``.
        subblock (str):
            [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.

            This field is a member of `oneof`_ ``_subblock``.
    """

    block: str = proto.Field(
        proto.STRING,
        number=93832333,
        optional=True,
    )
    cluster: str = proto.Field(
        proto.STRING,
        number=335221242,
        optional=True,
    )
    host: str = proto.Field(
        proto.STRING,
        number=3208616,
        optional=True,
    )
    subblock: str = proto.Field(
        proto.STRING,
        number=70446669,
        optional=True,
    )


class ResourceStatusScheduling(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        availability_domain (int):
            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.

            This field is a member of `oneof`_ ``_availability_domain``.
        termination_timestamp (str):
            Time in future when the instance will be
            terminated in RFC3339 text format.

            This field is a member of `oneof`_ ``_termination_timestamp``.
    """

    availability_domain: int = proto.Field(
        proto.INT32,
        number=252514344,
        optional=True,
    )
    termination_timestamp: str = proto.Field(
        proto.STRING,
        number=364180891,
        optional=True,
    )


class ResourceStatusShutdownDetails(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        max_duration (google.cloud.compute_v1beta.types.Duration):

            This field is a member of `oneof`_ ``_max_duration``.
        request_timestamp (str):

            This field is a member of `oneof`_ ``_request_timestamp``.
        stop_state (str):
            Check the StopState enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_stop_state``.
        target_state (str):
            Check the TargetState enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_target_state``.
    """

    class StopState(proto.Enum):
        r"""

        Values:
            UNDEFINED_STOP_STATE (0):
                A value indicating that the enum field is not
                set.
            PENDING_STOP (362509770):
                No description available.
            STOPPING (350791796):
                No description available.
        """
        UNDEFINED_STOP_STATE = 0
        PENDING_STOP = 362509770
        STOPPING = 350791796

    class TargetState(proto.Enum):
        r"""

        Values:
            UNDEFINED_TARGET_STATE (0):
                A value indicating that the enum field is not
                set.
            DELETED (120962041):
                No description available.
            STOPPED (444276141):
                No description available.
        """
        UNDEFINED_TARGET_STATE = 0
        DELETED = 120962041
        STOPPED = 444276141

    max_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=39954959,
        optional=True,
        message="Duration",
    )
    request_timestamp: str = proto.Field(
        proto.STRING,
        number=521301862,
        optional=True,
    )
    stop_state: str = proto.Field(
        proto.STRING,
        number=67347988,
        optional=True,
    )
    target_state: str = proto.Field(
        proto.STRING,
        number=338978915,
        optional=True,
    )


class ResumeInstanceRequest(proto.Message):
    r"""A request message for Instances.Resume. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance resource to resume.
        instances_resume_request_resource (google.cloud.compute_v1beta.types.InstancesResumeRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_resume_request_resource: "InstancesResumeRequest" = proto.Field(
        proto.MESSAGE,
        number=463320783,
        message="InstancesResumeRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ResumeInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.ResumeInstances.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_resume_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersResumeInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_resume_instances_request_resource: "InstanceGroupManagersResumeInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=129015618,
        message="InstanceGroupManagersResumeInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class ResumeInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.ResumeInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_resume_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersResumeInstancesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_resume_instances_request_resource: "RegionInstanceGroupManagersResumeInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=463471031,
        message="RegionInstanceGroupManagersResumeInstancesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class RolloutPolicy(proto.Message):
    r"""A rollout policy configuration.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        default_rollout_time (str):
            An optional RFC3339 timestamp on or after
            which the update is considered rolled out to any
            zone that is not explicitly stated.

            This field is a member of `oneof`_ ``_default_rollout_time``.
        location_rollout_policies (MutableMapping[str, str]):
            Location based rollout policies to apply to
            the resource. Currently only zone names are
            supported and must be represented as valid URLs,
            like: zones/us-central1-a. The value expects an
            RFC3339 timestamp on or after which the update
            is considered rolled out to the specified
            location.
    """

    default_rollout_time: str = proto.Field(
        proto.STRING,
        number=413529561,
        optional=True,
    )
    location_rollout_policies: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=133299048,
    )


class Route(proto.Message):
    r"""Represents a Route resource. A route defines a path from VM
    instances in the VPC network to a specific destination. This
    destination can be inside or outside the VPC network. For more
    information, read the Routes overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        as_paths (MutableSequence[google.cloud.compute_v1beta.types.RouteAsPath]):
            [Output Only] AS path.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this field when you create the resource.

            This field is a member of `oneof`_ ``_description``.
        dest_range (str):
            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.

            This field is a member of `oneof`_ ``_dest_range``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of this resource. Always compute#routes
            for Route resources.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?``. The first character must be
            a lowercase letter, and all following characters (except for
            the last character) must be a dash, lowercase letter, or
            digit. The last character must be a lowercase letter or
            digit.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            Fully-qualified URL of the network that this
            route applies to.

            This field is a member of `oneof`_ ``_network``.
        next_hop_gateway (str):
            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

            This field is a member of `oneof`_ ``_next_hop_gateway``.
        next_hop_hub (str):
            [Output Only] The full resource name of the Network
            Connectivity Center hub that will handle matching packets.

            This field is a member of `oneof`_ ``_next_hop_hub``.
        next_hop_ilb (str):
            The URL to a forwarding rule of type
            loadBalancingScheme=INTERNAL that should handle
            matching packets or the IP address of the
            forwarding Rule. For example, the following are
            all valid URLs: -
            https://www.googleapis.com/compute/v1/projects/project/regions/region
            /forwardingRules/forwardingRule -
            regions/region/forwardingRules/forwardingRule If
            an IP address is provided, must specify an IPv4
            address in dot-decimal notation or an IPv6
            address in RFC 4291 format. For example, the
            following are all valid IP addresses: -
            10.128.0.56 - 2001:db8::2d9:51:0:0 -
            2001:db8:0:0:2d9:51:0:0 IPv6 addresses will be
            displayed using RFC 5952 compressed format (e.g.
            2001:db8::2d9:51:0:0). Should never be an
            IPv4-mapped IPv6 address.

            This field is a member of `oneof`_ ``_next_hop_ilb``.
        next_hop_instance (str):
            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/

            This field is a member of `oneof`_ ``_next_hop_instance``.
        next_hop_inter_region_cost (int):
            [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.

            This field is a member of `oneof`_ ``_next_hop_inter_region_cost``.
        next_hop_interconnect_attachment (str):
            [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.

            This field is a member of `oneof`_ ``_next_hop_interconnect_attachment``.
        next_hop_ip (str):
            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.

            This field is a member of `oneof`_ ``_next_hop_ip``.
        next_hop_med (int):
            [Output Only] Multi-Exit Discriminator, a BGP route metric
            that indicates the desirability of a particular route in a
            network.

            This field is a member of `oneof`_ ``_next_hop_med``.
        next_hop_network (str):
            The URL of the local network if it should
            handle matching packets.

            This field is a member of `oneof`_ ``_next_hop_network``.
        next_hop_origin (str):
            [Output Only] Indicates the origin of the route. Can be IGP
            (Interior Gateway Protocol), EGP (Exterior Gateway
            Protocol), or INCOMPLETE. Check the NextHopOrigin enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_next_hop_origin``.
        next_hop_peering (str):
            [Output Only] The network peering name that should handle
            matching packets, which should conform to RFC1035.

            This field is a member of `oneof`_ ``_next_hop_peering``.
        next_hop_vpn_tunnel (str):
            The URL to a VpnTunnel that should handle
            matching packets.

            This field is a member of `oneof`_ ``_next_hop_vpn_tunnel``.
        params (google.cloud.compute_v1beta.types.RouteParams):
            Input only. [Input Only] Additional params passed with the
            request, but not persisted as part of resource payload.

            This field is a member of `oneof`_ ``_params``.
        priority (int):
            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.

            This field is a member of `oneof`_ ``_priority``.
        route_status (str):
            [Output only] The status of the route. Check the RouteStatus
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_route_status``.
        route_type (str):
            [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 Check
            the RouteType enum for the list of possible values.

            This field is a member of `oneof`_ ``_route_type``.
        self_link (str):
            [Output Only] Server-defined fully-qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        tags (MutableSequence[str]):
            A list of instance tags to which this route
            applies.
        warnings (MutableSequence[google.cloud.compute_v1beta.types.Warnings]):
            [Output Only] If potential misconfigurations are detected
            for this route, this field will be populated with warning
            messages.
    """

    class NextHopOrigin(proto.Enum):
        r"""[Output Only] Indicates the origin of the route. Can be IGP
        (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or
        INCOMPLETE.

        Values:
            UNDEFINED_NEXT_HOP_ORIGIN (0):
                A value indicating that the enum field is not
                set.
            EGP (68590):
                No description available.
            IGP (72434):
                No description available.
            INCOMPLETE (11941214):
                No description available.
        """
        UNDEFINED_NEXT_HOP_ORIGIN = 0
        EGP = 68590
        IGP = 72434
        INCOMPLETE = 11941214

    class RouteStatus(proto.Enum):
        r"""[Output only] The status of the route.

        Values:
            UNDEFINED_ROUTE_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                This route is processed and active.
            DROPPED (496235424):
                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 (270421099):
                This route is processed but inactive due to
                failure from the backend. The backend may have
                rejected the route
            PENDING (35394935):
                This route is being processed internally. The
                status will change once processed.
        """
        UNDEFINED_ROUTE_STATUS = 0
        ACTIVE = 314733318
        DROPPED = 496235424
        INACTIVE = 270421099
        PENDING = 35394935

    class RouteType(proto.Enum):
        r"""[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

        Values:
            UNDEFINED_ROUTE_TYPE (0):
                A value indicating that the enum field is not
                set.
            BGP (65707):
                No description available.
            STATIC (308331118):
                No description available.
            SUBNET (309278557):
                No description available.
            TRANSIT (187793843):
                No description available.
        """
        UNDEFINED_ROUTE_TYPE = 0
        BGP = 65707
        STATIC = 308331118
        SUBNET = 309278557
        TRANSIT = 187793843

    as_paths: MutableSequence["RouteAsPath"] = proto.RepeatedField(
        proto.MESSAGE,
        number=137568929,
        message="RouteAsPath",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    dest_range: str = proto.Field(
        proto.STRING,
        number=381327712,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    next_hop_gateway: str = proto.Field(
        proto.STRING,
        number=377175298,
        optional=True,
    )
    next_hop_hub: str = proto.Field(
        proto.STRING,
        number=198679219,
        optional=True,
    )
    next_hop_ilb: str = proto.Field(
        proto.STRING,
        number=198679901,
        optional=True,
    )
    next_hop_instance: str = proto.Field(
        proto.STRING,
        number=393508247,
        optional=True,
    )
    next_hop_inter_region_cost: int = proto.Field(
        proto.UINT32,
        number=24442003,
        optional=True,
    )
    next_hop_interconnect_attachment: str = proto.Field(
        proto.STRING,
        number=226852914,
        optional=True,
    )
    next_hop_ip: str = proto.Field(
        proto.STRING,
        number=110319529,
        optional=True,
    )
    next_hop_med: int = proto.Field(
        proto.UINT32,
        number=198683530,
        optional=True,
    )
    next_hop_network: str = proto.Field(
        proto.STRING,
        number=262295788,
        optional=True,
    )
    next_hop_origin: str = proto.Field(
        proto.STRING,
        number=48752808,
        optional=True,
    )
    next_hop_peering: str = proto.Field(
        proto.STRING,
        number=412682750,
        optional=True,
    )
    next_hop_vpn_tunnel: str = proto.Field(
        proto.STRING,
        number=519844501,
        optional=True,
    )
    params: "RouteParams" = proto.Field(
        proto.MESSAGE,
        number=78313862,
        optional=True,
        message="RouteParams",
    )
    priority: int = proto.Field(
        proto.UINT32,
        number=445151652,
        optional=True,
    )
    route_status: str = proto.Field(
        proto.STRING,
        number=418162344,
        optional=True,
    )
    route_type: str = proto.Field(
        proto.STRING,
        number=375888752,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    tags: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=3552281,
    )
    warnings: MutableSequence["Warnings"] = proto.RepeatedField(
        proto.MESSAGE,
        number=498091095,
        message="Warnings",
    )


class RouteAsPath(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        as_lists (MutableSequence[int]):
            [Output Only] The AS numbers of the AS Path.
        path_segment_type (str):
            [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 Check the PathSegmentType enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_path_segment_type``.
    """

    class PathSegmentType(proto.Enum):
        r"""[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

        Values:
            UNDEFINED_PATH_SEGMENT_TYPE (0):
                A value indicating that the enum field is not
                set.
            AS_CONFED_SEQUENCE (222152624):
                No description available.
            AS_CONFED_SET (374040307):
                No description available.
            AS_SEQUENCE (106735918):
                No description available.
            AS_SET (329846453):
                No description available.
        """
        UNDEFINED_PATH_SEGMENT_TYPE = 0
        AS_CONFED_SEQUENCE = 222152624
        AS_CONFED_SET = 374040307
        AS_SEQUENCE = 106735918
        AS_SET = 329846453

    as_lists: MutableSequence[int] = proto.RepeatedField(
        proto.UINT32,
        number=134112584,
    )
    path_segment_type: str = proto.Field(
        proto.STRING,
        number=513464992,
        optional=True,
    )


class RouteList(proto.Message):
    r"""Contains a list of Route resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Route]):
            A list of Route resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Route"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Route",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RouteParams(proto.Message):
    r"""Additional route parameters.

    Attributes:
        resource_manager_tags (MutableMapping[str, str]):
            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.
    """

    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )


class RoutePolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            An optional description of route policy.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        name (str):
            Route Policy name, which must be a resource
            ID segment and unique within all the router's
            Route Policies. Name should conform to RFC1035.

            This field is a member of `oneof`_ ``_name``.
        terms (MutableSequence[google.cloud.compute_v1beta.types.RoutePolicyPolicyTerm]):
            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.
        type_ (str):
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            ROUTE_POLICY_TYPE_EXPORT (293086882):
                The Route Policy is an Export Policy.
            ROUTE_POLICY_TYPE_IMPORT (397444755):
                The Route Policy is an Import Policy.
        """
        UNDEFINED_TYPE = 0
        ROUTE_POLICY_TYPE_EXPORT = 293086882
        ROUTE_POLICY_TYPE_IMPORT = 397444755

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    terms: MutableSequence["RoutePolicyPolicyTerm"] = proto.RepeatedField(
        proto.MESSAGE,
        number=110250375,
        message="RoutePolicyPolicyTerm",
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class RoutePolicyPolicyTerm(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        actions (MutableSequence[google.cloud.compute_v1beta.types.Expr]):
            CEL expressions to evaluate to modify a route
            when this term matches.
        match (google.cloud.compute_v1beta.types.Expr):
            CEL expression evaluated against a route to
            determine if this term applies. When not set,
            the term applies to all routes.

            This field is a member of `oneof`_ ``_match``.
        priority (int):
            The evaluation priority for this term, which
            must be between 0 (inclusive) and 2^31
            (exclusive), and unique within the list.

            This field is a member of `oneof`_ ``_priority``.
    """

    actions: MutableSequence["Expr"] = proto.RepeatedField(
        proto.MESSAGE,
        number=448809213,
        message="Expr",
    )
    match: "Expr" = proto.Field(
        proto.MESSAGE,
        number=103668165,
        optional=True,
        message="Expr",
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )


class Router(proto.Message):
    r"""Represents a Cloud Router resource. For more information
    about Cloud Router, read the Cloud Router overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bgp (google.cloud.compute_v1beta.types.RouterBgp):
            BGP information specific to this router.

            This field is a member of `oneof`_ ``_bgp``.
        bgp_peers (MutableSequence[google.cloud.compute_v1beta.types.RouterBgpPeer]):
            BGP information that must be configured into
            the routing stack to establish BGP peering. This
            information must specify the peer ASN and either
            the interface name, IP address, or peer IP
            address. Please refer to RFC4273.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        encrypted_interconnect_router (bool):
            Indicates if a router is dedicated for use
            with encrypted VLAN attachments
            (interconnectAttachments).

            This field is a member of `oneof`_ ``_encrypted_interconnect_router``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        interfaces (MutableSequence[google.cloud.compute_v1beta.types.RouterInterface]):
            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.
        kind (str):
            [Output Only] Type of resource. Always compute#router for
            routers.

            This field is a member of `oneof`_ ``_kind``.
        md5_authentication_keys (MutableSequence[google.cloud.compute_v1beta.types.RouterMd5AuthenticationKey]):
            Keys used for MD5 authentication.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        nats (MutableSequence[google.cloud.compute_v1beta.types.RouterNat]):
            A list of NAT services created in this
            router.
        ncc_gateway (str):
            URI of the ncc_gateway to which this router associated.

            This field is a member of `oneof`_ ``_ncc_gateway``.
        network (str):
            URI of the network to which this router
            belongs.

            This field is a member of `oneof`_ ``_network``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
    """

    bgp: "RouterBgp" = proto.Field(
        proto.MESSAGE,
        number=97483,
        optional=True,
        message="RouterBgp",
    )
    bgp_peers: MutableSequence["RouterBgpPeer"] = proto.RepeatedField(
        proto.MESSAGE,
        number=452695773,
        message="RouterBgpPeer",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    encrypted_interconnect_router: bool = proto.Field(
        proto.BOOL,
        number=297996575,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    interfaces: MutableSequence["RouterInterface"] = proto.RepeatedField(
        proto.MESSAGE,
        number=12073562,
        message="RouterInterface",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    md5_authentication_keys: MutableSequence[
        "RouterMd5AuthenticationKey"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=71063322,
        message="RouterMd5AuthenticationKey",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    nats: MutableSequence["RouterNat"] = proto.RepeatedField(
        proto.MESSAGE,
        number=3373938,
        message="RouterNat",
    )
    ncc_gateway: str = proto.Field(
        proto.STRING,
        number=174876755,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )


class RouterAdvertisedIpRange(proto.Message):
    r"""Description-tagged IP ranges for the router to advertise.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            User-specified description for the IP range.

            This field is a member of `oneof`_ ``_description``.
        range_ (str):
            The IP range to advertise. The value must be
            a CIDR-formatted string.

            This field is a member of `oneof`_ ``_range``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    range_: str = proto.Field(
        proto.STRING,
        number=108280125,
        optional=True,
    )


class RouterAggregatedList(proto.Message):
    r"""Contains a list of routers.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.RoutersScopedList]):
            A list of Router resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "RoutersScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="RoutersScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RouterBgp(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        advertise_mode (str):
            User-specified flag to indicate which mode to
            use for advertisement. The options are DEFAULT
            or CUSTOM. Check the AdvertiseMode enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_advertise_mode``.
        advertised_groups (MutableSequence[str]):
            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. Check the AdvertisedGroups enum for the list of
            possible values.
        advertised_ip_ranges (MutableSequence[google.cloud.compute_v1beta.types.RouterAdvertisedIpRange]):
            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.
        asn (int):
            Local BGP Autonomous System Number (ASN).
            Must be an RFC6996 private ASN, either 16-bit or
            32-bit. The value will be fixed for this router
            resource. All VPN tunnels that link to this
            router will have the same local ASN.

            This field is a member of `oneof`_ ``_asn``.
        identifier_range (str):
            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".

            This field is a member of `oneof`_ ``_identifier_range``.
        keepalive_interval (int):
            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.

            This field is a member of `oneof`_ ``_keepalive_interval``.
    """

    class AdvertiseMode(proto.Enum):
        r"""User-specified flag to indicate which mode to use for
        advertisement. The options are DEFAULT or CUSTOM.

        Values:
            UNDEFINED_ADVERTISE_MODE (0):
                A value indicating that the enum field is not
                set.
            CUSTOM (388595569):
                No description available.
            DEFAULT (115302945):
                No description available.
        """
        UNDEFINED_ADVERTISE_MODE = 0
        CUSTOM = 388595569
        DEFAULT = 115302945

    class AdvertisedGroups(proto.Enum):
        r"""

        Values:
            UNDEFINED_ADVERTISED_GROUPS (0):
                A value indicating that the enum field is not
                set.
            ALL_SUBNETS (3622872):
                Advertise all available subnets (including
                peer VPC subnets).
        """
        UNDEFINED_ADVERTISED_GROUPS = 0
        ALL_SUBNETS = 3622872

    advertise_mode: str = proto.Field(
        proto.STRING,
        number=312134331,
        optional=True,
    )
    advertised_groups: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=21065526,
    )
    advertised_ip_ranges: MutableSequence[
        "RouterAdvertisedIpRange"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=35449932,
        message="RouterAdvertisedIpRange",
    )
    asn: int = proto.Field(
        proto.UINT32,
        number=96892,
        optional=True,
    )
    identifier_range: str = proto.Field(
        proto.STRING,
        number=501573159,
        optional=True,
    )
    keepalive_interval: int = proto.Field(
        proto.UINT32,
        number=276771516,
        optional=True,
    )


class RouterBgpPeer(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        advertise_mode (str):
            User-specified flag to indicate which mode to
            use for advertisement. Check the AdvertiseMode
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_advertise_mode``.
        advertised_groups (MutableSequence[str]):
            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. Check the
            AdvertisedGroups enum for the list of possible values.
        advertised_ip_ranges (MutableSequence[google.cloud.compute_v1beta.types.RouterAdvertisedIpRange]):
            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.
        advertised_route_priority (int):
            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.

            This field is a member of `oneof`_ ``_advertised_route_priority``.
        bfd (google.cloud.compute_v1beta.types.RouterBgpPeerBfd):
            BFD configuration for the BGP peering.

            This field is a member of `oneof`_ ``_bfd``.
        custom_learned_ip_ranges (MutableSequence[google.cloud.compute_v1beta.types.RouterBgpPeerCustomLearnedIpRange]):
            A list of user-defined custom learned route
            IP address ranges for a BGP session.
        custom_learned_route_priority (int):
            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.

            This field is a member of `oneof`_ ``_custom_learned_route_priority``.
        enable (str):
            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. Check the
            Enable enum for the list of possible values.

            This field is a member of `oneof`_ ``_enable``.
        enable_ipv4 (bool):
            Enable IPv4 traffic over BGP Peer. It is
            enabled by default if the peerIpAddress is
            version 4.

            This field is a member of `oneof`_ ``_enable_ipv4``.
        enable_ipv6 (bool):
            Enable IPv6 traffic over BGP Peer. It is
            enabled by default if the peerIpAddress is
            version 6.

            This field is a member of `oneof`_ ``_enable_ipv6``.
        export_policies (MutableSequence[str]):
            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.
        import_policies (MutableSequence[str]):
            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.
        interface_name (str):
            Name of the interface the BGP peer is
            associated with.

            This field is a member of `oneof`_ ``_interface_name``.
        ip_address (str):
            IP address of the interface inside Google
            Cloud Platform.

            This field is a member of `oneof`_ ``_ip_address``.
        ipv4_nexthop_address (str):
            IPv4 address of the interface inside Google
            Cloud Platform.

            This field is a member of `oneof`_ ``_ipv4_nexthop_address``.
        ipv6_nexthop_address (str):
            IPv6 address of the interface inside Google
            Cloud Platform.

            This field is a member of `oneof`_ ``_ipv6_nexthop_address``.
        management_type (str):
            [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.
            Check the ManagementType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_management_type``.
        md5_authentication_key_name (str):
            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.

            This field is a member of `oneof`_ ``_md5_authentication_key_name``.
        name (str):
            Name of this BGP peer. The name must be 1-63 characters
            long, and comply with RFC1035. Specifically, the name must
            be 1-63 characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        peer_asn (int):
            Peer BGP Autonomous System Number (ASN). Each
            BGP interface may use a different value.

            This field is a member of `oneof`_ ``_peer_asn``.
        peer_ip_address (str):
            IP address of the BGP interface outside
            Google Cloud Platform.

            This field is a member of `oneof`_ ``_peer_ip_address``.
        peer_ipv4_nexthop_address (str):
            IPv4 address of the BGP interface outside
            Google Cloud Platform.

            This field is a member of `oneof`_ ``_peer_ipv4_nexthop_address``.
        peer_ipv6_nexthop_address (str):
            IPv6 address of the BGP interface outside
            Google Cloud Platform.

            This field is a member of `oneof`_ ``_peer_ipv6_nexthop_address``.
        router_appliance_instance (str):
            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.

            This field is a member of `oneof`_ ``_router_appliance_instance``.
    """

    class AdvertiseMode(proto.Enum):
        r"""User-specified flag to indicate which mode to use for
        advertisement.

        Values:
            UNDEFINED_ADVERTISE_MODE (0):
                A value indicating that the enum field is not
                set.
            CUSTOM (388595569):
                No description available.
            DEFAULT (115302945):
                No description available.
        """
        UNDEFINED_ADVERTISE_MODE = 0
        CUSTOM = 388595569
        DEFAULT = 115302945

    class AdvertisedGroups(proto.Enum):
        r"""

        Values:
            UNDEFINED_ADVERTISED_GROUPS (0):
                A value indicating that the enum field is not
                set.
            ALL_SUBNETS (3622872):
                Advertise all available subnets (including
                peer VPC subnets).
        """
        UNDEFINED_ADVERTISED_GROUPS = 0
        ALL_SUBNETS = 3622872

    class Enable(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_ENABLE (0):
                A value indicating that the enum field is not
                set.
            FALSE (66658563):
                No description available.
            TRUE (2583950):
                No description available.
        """
        UNDEFINED_ENABLE = 0
        FALSE = 66658563
        TRUE = 2583950

    class ManagementType(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_MANAGEMENT_TYPE (0):
                A value indicating that the enum field is not
                set.
            MANAGED_BY_ATTACHMENT (458926411):
                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 (317294067):
                Default value, the BGP peer is manually
                created and managed by user.
        """
        UNDEFINED_MANAGEMENT_TYPE = 0
        MANAGED_BY_ATTACHMENT = 458926411
        MANAGED_BY_USER = 317294067

    advertise_mode: str = proto.Field(
        proto.STRING,
        number=312134331,
        optional=True,
    )
    advertised_groups: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=21065526,
    )
    advertised_ip_ranges: MutableSequence[
        "RouterAdvertisedIpRange"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=35449932,
        message="RouterAdvertisedIpRange",
    )
    advertised_route_priority: int = proto.Field(
        proto.UINT32,
        number=186486332,
        optional=True,
    )
    bfd: "RouterBgpPeerBfd" = proto.Field(
        proto.MESSAGE,
        number=97440,
        optional=True,
        message="RouterBgpPeerBfd",
    )
    custom_learned_ip_ranges: MutableSequence[
        "RouterBgpPeerCustomLearnedIpRange"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=481363012,
        message="RouterBgpPeerCustomLearnedIpRange",
    )
    custom_learned_route_priority: int = proto.Field(
        proto.INT32,
        number=330412356,
        optional=True,
    )
    enable: str = proto.Field(
        proto.STRING,
        number=311764355,
        optional=True,
    )
    enable_ipv4: bool = proto.Field(
        proto.BOOL,
        number=181467937,
        optional=True,
    )
    enable_ipv6: bool = proto.Field(
        proto.BOOL,
        number=181467939,
        optional=True,
    )
    export_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=134084987,
    )
    import_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=451147946,
    )
    interface_name: str = proto.Field(
        proto.STRING,
        number=437854673,
        optional=True,
    )
    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    ipv4_nexthop_address: str = proto.Field(
        proto.STRING,
        number=5703377,
        optional=True,
    )
    ipv6_nexthop_address: str = proto.Field(
        proto.STRING,
        number=27968211,
        optional=True,
    )
    management_type: str = proto.Field(
        proto.STRING,
        number=173703606,
        optional=True,
    )
    md5_authentication_key_name: str = proto.Field(
        proto.STRING,
        number=281075345,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    peer_asn: int = proto.Field(
        proto.UINT32,
        number=69573151,
        optional=True,
    )
    peer_ip_address: str = proto.Field(
        proto.STRING,
        number=207735769,
        optional=True,
    )
    peer_ipv4_nexthop_address: str = proto.Field(
        proto.STRING,
        number=469221774,
        optional=True,
    )
    peer_ipv6_nexthop_address: str = proto.Field(
        proto.STRING,
        number=491486608,
        optional=True,
    )
    router_appliance_instance: str = proto.Field(
        proto.STRING,
        number=468312989,
        optional=True,
    )


class RouterBgpPeerBfd(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        min_receive_interval (int):
            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.

            This field is a member of `oneof`_ ``_min_receive_interval``.
        min_transmit_interval (int):
            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.

            This field is a member of `oneof`_ ``_min_transmit_interval``.
        multiplier (int):
            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.

            This field is a member of `oneof`_ ``_multiplier``.
        session_initialization_mode (str):
            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. Check the SessionInitializationMode
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_session_initialization_mode``.
    """

    class SessionInitializationMode(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SESSION_INITIALIZATION_MODE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                No description available.
            DISABLED (516696700):
                No description available.
            PASSIVE (462813959):
                No description available.
        """
        UNDEFINED_SESSION_INITIALIZATION_MODE = 0
        ACTIVE = 314733318
        DISABLED = 516696700
        PASSIVE = 462813959

    min_receive_interval: int = proto.Field(
        proto.UINT32,
        number=186981614,
        optional=True,
    )
    min_transmit_interval: int = proto.Field(
        proto.UINT32,
        number=523282631,
        optional=True,
    )
    multiplier: int = proto.Field(
        proto.UINT32,
        number=191331777,
        optional=True,
    )
    session_initialization_mode: str = proto.Field(
        proto.STRING,
        number=105957049,
        optional=True,
    )


class RouterBgpPeerCustomLearnedIpRange(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        range_ (str):
            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``.

            This field is a member of `oneof`_ ``_range``.
    """

    range_: str = proto.Field(
        proto.STRING,
        number=108280125,
        optional=True,
    )


class RouterInterface(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_range (str):
            IP address and range of the interface. - For
            Internet Protocol version 4 (IPv4), the IP range
            must be in the RFC3927 link-local IP address
            space. The value must be a CIDR-formatted
            string, for example, 169.254.0.1/30. Note: Do
            not truncate the IP address, as it represents
            the IP address of the interface. - For Internet
            Protocol version 6 (IPv6), the value must be a
            unique local address (ULA) range from
            fdff:1::/64 with a mask length of 126 or less.
            This value should be a CIDR-formatted string,
            for example, 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.

            This field is a member of `oneof`_ ``_ip_range``.
        ip_version (str):
            IP version of this interface.
            Check the IpVersion enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_ip_version``.
        linked_interconnect_attachment (str):
            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.

            This field is a member of `oneof`_ ``_linked_interconnect_attachment``.
        linked_vpn_tunnel (str):
            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.

            This field is a member of `oneof`_ ``_linked_vpn_tunnel``.
        management_type (str):
            [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.
            Check the ManagementType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_management_type``.
        name (str):
            Name of this interface entry. The name must be 1-63
            characters long, and comply with RFC1035. Specifically, the
            name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        private_ip_address (str):
            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.

            This field is a member of `oneof`_ ``_private_ip_address``.
        redundant_interface (str):
            Name of the interface that will be redundant with the
            current interface you are creating. The redundantInterface
            must belong to the same Cloud Router as the interface here.
            To establish the BGP session to a Router Appliance VM, you
            must create two BGP peers. The two BGP peers must be
            attached to two separate interfaces that are redundant with
            each other. The redundant_interface must be 1-63 characters
            long, and comply with RFC1035. Specifically, the
            redundant_interface must be 1-63 characters long and match
            the regular expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which
            means the first character must be a lowercase letter, and
            all following characters must be a dash, lowercase letter,
            or digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_redundant_interface``.
        subnetwork (str):
            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.

            This field is a member of `oneof`_ ``_subnetwork``.
    """

    class IpVersion(proto.Enum):
        r"""IP version of this interface.

        Values:
            UNDEFINED_IP_VERSION (0):
                A value indicating that the enum field is not
                set.
            IPV4 (2254341):
                No description available.
            IPV6 (2254343):
                No description available.
        """
        UNDEFINED_IP_VERSION = 0
        IPV4 = 2254341
        IPV6 = 2254343

    class ManagementType(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_MANAGEMENT_TYPE (0):
                A value indicating that the enum field is not
                set.
            MANAGED_BY_ATTACHMENT (458926411):
                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 (317294067):
                Default value, the interface is manually
                created and managed by user.
        """
        UNDEFINED_MANAGEMENT_TYPE = 0
        MANAGED_BY_ATTACHMENT = 458926411
        MANAGED_BY_USER = 317294067

    ip_range: str = proto.Field(
        proto.STRING,
        number=145092645,
        optional=True,
    )
    ip_version: str = proto.Field(
        proto.STRING,
        number=294959552,
        optional=True,
    )
    linked_interconnect_attachment: str = proto.Field(
        proto.STRING,
        number=501085518,
        optional=True,
    )
    linked_vpn_tunnel: str = proto.Field(
        proto.STRING,
        number=352296953,
        optional=True,
    )
    management_type: str = proto.Field(
        proto.STRING,
        number=173703606,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    private_ip_address: str = proto.Field(
        proto.STRING,
        number=100854040,
        optional=True,
    )
    redundant_interface: str = proto.Field(
        proto.STRING,
        number=523187303,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )


class RouterList(proto.Message):
    r"""Contains a list of Router resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Router]):
            A list of Router resources.
        kind (str):
            [Output Only] Type of resource. Always compute#router for
            routers.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Router"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Router",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RouterMd5AuthenticationKey(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        key (str):
            [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.

            This field is a member of `oneof`_ ``_key``.
        name (str):
            Name used to identify the key. Must be unique
            within a router. Must be referenced by exactly
            one bgpPeer. Must comply with RFC1035.

            This field is a member of `oneof`_ ``_name``.
    """

    key: str = proto.Field(
        proto.STRING,
        number=106079,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class RouterNat(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_network_tier (str):
            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.
            Check the AutoNetworkTier enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_auto_network_tier``.
        drain_nat_ips (MutableSequence[str]):
            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.
        enable_dynamic_port_allocation (bool):
            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.

            This field is a member of `oneof`_ ``_enable_dynamic_port_allocation``.
        enable_endpoint_independent_mapping (bool):

            This field is a member of `oneof`_ ``_enable_endpoint_independent_mapping``.
        endpoint_types (MutableSequence[str]):
            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 Check the EndpointTypes enum for the list
            of possible values.
        icmp_idle_timeout_sec (int):
            Timeout (in seconds) for ICMP connections.
            Defaults to 30s if not set.

            This field is a member of `oneof`_ ``_icmp_idle_timeout_sec``.
        log_config (google.cloud.compute_v1beta.types.RouterNatLogConfig):
            Configure logging on this NAT.

            This field is a member of `oneof`_ ``_log_config``.
        max_ports_per_vm (int):
            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.

            This field is a member of `oneof`_ ``_max_ports_per_vm``.
        min_ports_per_vm (int):
            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.

            This field is a member of `oneof`_ ``_min_ports_per_vm``.
        name (str):
            Unique name of this Nat service. The name
            must be 1-63 characters long and comply with
            RFC1035.

            This field is a member of `oneof`_ ``_name``.
        nat64_subnetworks (MutableSequence[google.cloud.compute_v1beta.types.RouterNatSubnetworkToNat64]):
            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.
        nat_ip_allocate_option (str):
            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. Check the NatIpAllocateOption enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_nat_ip_allocate_option``.
        nat_ips (MutableSequence[str]):
            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.
        rules (MutableSequence[google.cloud.compute_v1beta.types.RouterNatRule]):
            A list of rules associated with this NAT.
        source_subnetwork_ip_ranges_to_nat (str):
            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. Check the
            SourceSubnetworkIpRangesToNat enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_source_subnetwork_ip_ranges_to_nat``.
        source_subnetwork_ip_ranges_to_nat64 (str):
            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. Check the
            SourceSubnetworkIpRangesToNat64 enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_source_subnetwork_ip_ranges_to_nat64``.
        subnetworks (MutableSequence[google.cloud.compute_v1beta.types.RouterNatSubnetworkToNat]):
            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.
        tcp_established_idle_timeout_sec (int):
            Timeout (in seconds) for TCP established
            connections. Defaults to 1200s if not set.

            This field is a member of `oneof`_ ``_tcp_established_idle_timeout_sec``.
        tcp_time_wait_timeout_sec (int):
            Timeout (in seconds) for TCP connections that are in
            TIME_WAIT state. Defaults to 120s if not set.

            This field is a member of `oneof`_ ``_tcp_time_wait_timeout_sec``.
        tcp_transitory_idle_timeout_sec (int):
            Timeout (in seconds) for TCP transitory
            connections. Defaults to 30s if not set.

            This field is a member of `oneof`_ ``_tcp_transitory_idle_timeout_sec``.
        type_ (str):
            Indicates whether this NAT is used for public
            or private IP translation. If unspecified, it
            defaults to PUBLIC. Check the Type enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_type``.
        udp_idle_timeout_sec (int):
            Timeout (in seconds) for UDP connections.
            Defaults to 30s if not set.

            This field is a member of `oneof`_ ``_udp_idle_timeout_sec``.
    """

    class AutoNetworkTier(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_AUTO_NETWORK_TIER (0):
                A value indicating that the enum field is not
                set.
            FIXED_STANDARD (310464328):
                Public internet quality with fixed bandwidth.
            PREMIUM (399530551):
                High quality, Google-grade network tier,
                support for all networking products.
            STANDARD (484642493):
                Public internet quality, only limited support
                for other networking products.
            STANDARD_OVERRIDES_FIXED_STANDARD (465847234):
                (Output only) Temporary tier for FIXED_STANDARD when fixed
                standard tier is expired or not configured.
        """
        UNDEFINED_AUTO_NETWORK_TIER = 0
        FIXED_STANDARD = 310464328
        PREMIUM = 399530551
        STANDARD = 484642493
        STANDARD_OVERRIDES_FIXED_STANDARD = 465847234

    class EndpointTypes(proto.Enum):
        r"""

        Values:
            UNDEFINED_ENDPOINT_TYPES (0):
                A value indicating that the enum field is not
                set.
            ENDPOINT_TYPE_MANAGED_PROXY_LB (439196930):
                This is used for regional Application Load
                Balancers (internal and external) and regional
                proxy Network Load Balancers (internal and
                external) endpoints.
            ENDPOINT_TYPE_SWG (159344456):
                This is used for Secure Web Gateway
                endpoints.
            ENDPOINT_TYPE_VM (57095474):
                This is the default.
        """
        UNDEFINED_ENDPOINT_TYPES = 0
        ENDPOINT_TYPE_MANAGED_PROXY_LB = 439196930
        ENDPOINT_TYPE_SWG = 159344456
        ENDPOINT_TYPE_VM = 57095474

    class NatIpAllocateOption(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_NAT_IP_ALLOCATE_OPTION (0):
                A value indicating that the enum field is not
                set.
            AUTO_ONLY (182333500):
                Nat IPs are allocated by GCP; customers can
                not specify any Nat IPs.
            MANUAL_ONLY (261251205):
                Only use Nat IPs provided by customers. When
                specified Nat IPs are not enough then the Nat
                service fails for new VMs.
        """
        UNDEFINED_NAT_IP_ALLOCATE_OPTION = 0
        AUTO_ONLY = 182333500
        MANUAL_ONLY = 261251205

    class SourceSubnetworkIpRangesToNat(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT (0):
                A value indicating that the enum field is not
                set.
            ALL_SUBNETWORKS_ALL_IP_RANGES (179964376):
                All the IP ranges in every Subnetwork are
                allowed to Nat.
            ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES (185573819):
                All the primary IP ranges in every Subnetwork
                are allowed to Nat.
            LIST_OF_SUBNETWORKS (517542270):
                A list of Subnetworks are allowed to Nat
                (specified in the field subnetwork below)
        """
        UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT = 0
        ALL_SUBNETWORKS_ALL_IP_RANGES = 179964376
        ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES = 185573819
        LIST_OF_SUBNETWORKS = 517542270

    class SourceSubnetworkIpRangesToNat64(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT64 (0):
                A value indicating that the enum field is not
                set.
            ALL_IPV6_SUBNETWORKS (341632747):
                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 (521079860):
                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.
        """
        UNDEFINED_SOURCE_SUBNETWORK_IP_RANGES_TO_NAT64 = 0
        ALL_IPV6_SUBNETWORKS = 341632747
        LIST_OF_IPV6_SUBNETWORKS = 521079860

    class Type(proto.Enum):
        r"""Indicates whether this NAT is used for public or private IP
        translation. If unspecified, it defaults to PUBLIC.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            PRIVATE (403485027):
                NAT used for private IP translation.
            PUBLIC (223389289):
                NAT used for public IP translation. This is
                the default.
        """
        UNDEFINED_TYPE = 0
        PRIVATE = 403485027
        PUBLIC = 223389289

    auto_network_tier: str = proto.Field(
        proto.STRING,
        number=269770211,
        optional=True,
    )
    drain_nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=504078535,
    )
    enable_dynamic_port_allocation: bool = proto.Field(
        proto.BOOL,
        number=532106402,
        optional=True,
    )
    enable_endpoint_independent_mapping: bool = proto.Field(
        proto.BOOL,
        number=259441819,
        optional=True,
    )
    endpoint_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=502633807,
    )
    icmp_idle_timeout_sec: int = proto.Field(
        proto.INT32,
        number=3647562,
        optional=True,
    )
    log_config: "RouterNatLogConfig" = proto.Field(
        proto.MESSAGE,
        number=351299741,
        optional=True,
        message="RouterNatLogConfig",
    )
    max_ports_per_vm: int = proto.Field(
        proto.INT32,
        number=250062049,
        optional=True,
    )
    min_ports_per_vm: int = proto.Field(
        proto.INT32,
        number=186193587,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    nat64_subnetworks: MutableSequence[
        "RouterNatSubnetworkToNat64"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=63585701,
        message="RouterNatSubnetworkToNat64",
    )
    nat_ip_allocate_option: str = proto.Field(
        proto.STRING,
        number=429726845,
        optional=True,
    )
    nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=117635086,
    )
    rules: MutableSequence["RouterNatRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="RouterNatRule",
    )
    source_subnetwork_ip_ranges_to_nat: str = proto.Field(
        proto.STRING,
        number=252213211,
        optional=True,
    )
    source_subnetwork_ip_ranges_to_nat64: str = proto.Field(
        proto.STRING,
        number=248116185,
        optional=True,
    )
    subnetworks: MutableSequence["RouterNatSubnetworkToNat"] = proto.RepeatedField(
        proto.MESSAGE,
        number=415853125,
        message="RouterNatSubnetworkToNat",
    )
    tcp_established_idle_timeout_sec: int = proto.Field(
        proto.INT32,
        number=223098349,
        optional=True,
    )
    tcp_time_wait_timeout_sec: int = proto.Field(
        proto.INT32,
        number=513596925,
        optional=True,
    )
    tcp_transitory_idle_timeout_sec: int = proto.Field(
        proto.INT32,
        number=205028774,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    udp_idle_timeout_sec: int = proto.Field(
        proto.INT32,
        number=64919878,
        optional=True,
    )


class RouterNatLogConfig(proto.Message):
    r"""Configuration of logging on a NAT.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable (bool):
            Indicates whether or not to export logs. This
            is false by default.

            This field is a member of `oneof`_ ``_enable``.
        filter (str):
            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. Check the Filter
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_filter``.
    """

    class Filter(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_FILTER (0):
                A value indicating that the enum field is not
                set.
            ALL (64897):
                Export logs for all (successful and
                unsuccessful) connections.
            ERRORS_ONLY (307484672):
                Export logs for connection failures only.
            TRANSLATIONS_ONLY (357212649):
                Export logs for successful connections only.
        """
        UNDEFINED_FILTER = 0
        ALL = 64897
        ERRORS_ONLY = 307484672
        TRANSLATIONS_ONLY = 357212649

    enable: bool = proto.Field(
        proto.BOOL,
        number=311764355,
        optional=True,
    )
    filter: str = proto.Field(
        proto.STRING,
        number=336120696,
        optional=True,
    )


class RouterNatRule(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        action (google.cloud.compute_v1beta.types.RouterNatRuleAction):
            The action to be enforced for traffic that
            matches this rule.

            This field is a member of `oneof`_ ``_action``.
        description (str):
            An optional description of this rule.

            This field is a member of `oneof`_ ``_description``.
        match (str):
            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/hubs/hub-1'``

            This field is a member of `oneof`_ ``_match``.
        rule_number (int):
            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.

            This field is a member of `oneof`_ ``_rule_number``.
    """

    action: "RouterNatRuleAction" = proto.Field(
        proto.MESSAGE,
        number=187661878,
        optional=True,
        message="RouterNatRuleAction",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    match: str = proto.Field(
        proto.STRING,
        number=103668165,
        optional=True,
    )
    rule_number: int = proto.Field(
        proto.UINT32,
        number=535211500,
        optional=True,
    )


class RouterNatRuleAction(proto.Message):
    r"""

    Attributes:
        source_nat_active_ips (MutableSequence[str]):
            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.
        source_nat_active_ranges (MutableSequence[str]):
            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.
        source_nat_drain_ips (MutableSequence[str]):
            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.
        source_nat_drain_ranges (MutableSequence[str]):
            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.
    """

    source_nat_active_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=210378229,
    )
    source_nat_active_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=190556269,
    )
    source_nat_drain_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=340812451,
    )
    source_nat_drain_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=84802815,
    )


class RouterNatSubnetworkToNat(proto.Message):
    r"""Defines the IP ranges that want to use NAT for a subnetwork.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            URL for the subnetwork resource that will use
            NAT.

            This field is a member of `oneof`_ ``_name``.
        secondary_ip_range_names (MutableSequence[str]):
            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.
        source_ip_ranges_to_nat (MutableSequence[str]):
            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]
            Check the SourceIpRangesToNat enum for the list of possible
            values.
    """

    class SourceIpRangesToNat(proto.Enum):
        r"""

        Values:
            UNDEFINED_SOURCE_IP_RANGES_TO_NAT (0):
                A value indicating that the enum field is not
                set.
            ALL_IP_RANGES (35608496):
                The primary and all the secondary ranges are
                allowed to Nat.
            LIST_OF_SECONDARY_IP_RANGES (192289308):
                A list of secondary ranges are allowed to
                Nat.
            PRIMARY_IP_RANGE (297109954):
                The primary range is allowed to Nat.
        """
        UNDEFINED_SOURCE_IP_RANGES_TO_NAT = 0
        ALL_IP_RANGES = 35608496
        LIST_OF_SECONDARY_IP_RANGES = 192289308
        PRIMARY_IP_RANGE = 297109954

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    secondary_ip_range_names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=264315097,
    )
    source_ip_ranges_to_nat: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=388310386,
    )


class RouterNatSubnetworkToNat64(proto.Message):
    r"""Specifies a subnetwork to enable NAT64.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            URL for the subnetwork resource that will use
            NAT64.

            This field is a member of `oneof`_ ``_name``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class RouterStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        best_routes (MutableSequence[google.cloud.compute_v1beta.types.Route]):
            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.
        best_routes_for_router (MutableSequence[google.cloud.compute_v1beta.types.Route]):
            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.
        bgp_peer_status (MutableSequence[google.cloud.compute_v1beta.types.RouterStatusBgpPeerStatus]):

        nat_status (MutableSequence[google.cloud.compute_v1beta.types.RouterStatusNatStatus]):

        ncc_gateway (str):
            URI of the ncc_gateway to which this router associated.

            This field is a member of `oneof`_ ``_ncc_gateway``.
        network (str):
            URI of the network to which this router
            belongs.

            This field is a member of `oneof`_ ``_network``.
    """

    best_routes: MutableSequence["Route"] = proto.RepeatedField(
        proto.MESSAGE,
        number=395826693,
        message="Route",
    )
    best_routes_for_router: MutableSequence["Route"] = proto.RepeatedField(
        proto.MESSAGE,
        number=119389689,
        message="Route",
    )
    bgp_peer_status: MutableSequence["RouterStatusBgpPeerStatus"] = proto.RepeatedField(
        proto.MESSAGE,
        number=218459131,
        message="RouterStatusBgpPeerStatus",
    )
    nat_status: MutableSequence["RouterStatusNatStatus"] = proto.RepeatedField(
        proto.MESSAGE,
        number=63098064,
        message="RouterStatusNatStatus",
    )
    ncc_gateway: str = proto.Field(
        proto.STRING,
        number=174876755,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )


class RouterStatusBgpPeerStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        advertised_routes (MutableSequence[google.cloud.compute_v1beta.types.Route]):
            Routes that were advertised to the remote BGP
            peer
        bfd_status (google.cloud.compute_v1beta.types.BfdStatus):

            This field is a member of `oneof`_ ``_bfd_status``.
        enable_ipv4 (bool):
            Enable IPv4 traffic over BGP Peer. It is
            enabled by default if the peerIpAddress is
            version 4.

            This field is a member of `oneof`_ ``_enable_ipv4``.
        enable_ipv6 (bool):
            Enable IPv6 traffic over BGP Peer. It is
            enabled by default if the peerIpAddress is
            version 6.

            This field is a member of `oneof`_ ``_enable_ipv6``.
        ip_address (str):
            IP address of the local BGP interface.

            This field is a member of `oneof`_ ``_ip_address``.
        ipv4_nexthop_address (str):
            IPv4 address of the local BGP interface.

            This field is a member of `oneof`_ ``_ipv4_nexthop_address``.
        ipv6_nexthop_address (str):
            IPv6 address of the local BGP interface.

            This field is a member of `oneof`_ ``_ipv6_nexthop_address``.
        linked_vpn_tunnel (str):
            URL of the VPN tunnel that this BGP peer
            controls.

            This field is a member of `oneof`_ ``_linked_vpn_tunnel``.
        md5_auth_enabled (bool):
            Informs whether MD5 authentication is enabled
            on this BGP peer.

            This field is a member of `oneof`_ ``_md5_auth_enabled``.
        name (str):
            Name of this BGP peer. Unique within the
            Routers resource.

            This field is a member of `oneof`_ ``_name``.
        num_learned_routes (int):
            Number of routes learned from the remote BGP
            Peer.

            This field is a member of `oneof`_ ``_num_learned_routes``.
        peer_ip_address (str):
            IP address of the remote BGP interface.

            This field is a member of `oneof`_ ``_peer_ip_address``.
        peer_ipv4_nexthop_address (str):
            IPv4 address of the remote BGP interface.

            This field is a member of `oneof`_ ``_peer_ipv4_nexthop_address``.
        peer_ipv6_nexthop_address (str):
            IPv6 address of the remote BGP interface.

            This field is a member of `oneof`_ ``_peer_ipv6_nexthop_address``.
        router_appliance_instance (str):
            [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.

            This field is a member of `oneof`_ ``_router_appliance_instance``.
        state (str):
            The state of the BGP session. For a list of
            possible values for this field, see BGP session
            states.

            This field is a member of `oneof`_ ``_state``.
        status (str):
            Status of the BGP peer: {UP, DOWN}
            Check the Status enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_status``.
        status_reason (str):
            Indicates why particular status was returned.
            Check the StatusReason enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_status_reason``.
        uptime (str):
            Time this session has been up. Format: 14
            years, 51 weeks, 6 days, 23 hours, 59 minutes,
            59 seconds

            This field is a member of `oneof`_ ``_uptime``.
        uptime_seconds (str):
            Time this session has been up, in seconds.
            Format: 145

            This field is a member of `oneof`_ ``_uptime_seconds``.
    """

    class Status(proto.Enum):
        r"""Status of the BGP peer: {UP, DOWN}

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            DOWN (2104482):
                No description available.
            UNKNOWN (433141802):
                No description available.
            UP (2715):
                No description available.
        """
        UNDEFINED_STATUS = 0
        DOWN = 2104482
        UNKNOWN = 433141802
        UP = 2715

    class StatusReason(proto.Enum):
        r"""Indicates why particular status was returned.

        Values:
            UNDEFINED_STATUS_REASON (0):
                A value indicating that the enum field is not
                set.
            IPV4_PEER_ON_IPV6_ONLY_CONNECTION (435936662):
                BGP peer disabled because it requires IPv4
                but the underlying connection is IPv6-only.
            IPV6_PEER_ON_IPV4_ONLY_CONNECTION (436304082):
                BGP peer disabled because it requires IPv6
                but the underlying connection is IPv4-only.
            MD5_AUTH_INTERNAL_PROBLEM (140462259):
                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 (394331913):
                No description available.
        """
        UNDEFINED_STATUS_REASON = 0
        IPV4_PEER_ON_IPV6_ONLY_CONNECTION = 435936662
        IPV6_PEER_ON_IPV4_ONLY_CONNECTION = 436304082
        MD5_AUTH_INTERNAL_PROBLEM = 140462259
        STATUS_REASON_UNSPECIFIED = 394331913

    advertised_routes: MutableSequence["Route"] = proto.RepeatedField(
        proto.MESSAGE,
        number=333393068,
        message="Route",
    )
    bfd_status: "BfdStatus" = proto.Field(
        proto.MESSAGE,
        number=395631729,
        optional=True,
        message="BfdStatus",
    )
    enable_ipv4: bool = proto.Field(
        proto.BOOL,
        number=181467937,
        optional=True,
    )
    enable_ipv6: bool = proto.Field(
        proto.BOOL,
        number=181467939,
        optional=True,
    )
    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    ipv4_nexthop_address: str = proto.Field(
        proto.STRING,
        number=5703377,
        optional=True,
    )
    ipv6_nexthop_address: str = proto.Field(
        proto.STRING,
        number=27968211,
        optional=True,
    )
    linked_vpn_tunnel: str = proto.Field(
        proto.STRING,
        number=352296953,
        optional=True,
    )
    md5_auth_enabled: bool = proto.Field(
        proto.BOOL,
        number=451152075,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    num_learned_routes: int = proto.Field(
        proto.UINT32,
        number=135457535,
        optional=True,
    )
    peer_ip_address: str = proto.Field(
        proto.STRING,
        number=207735769,
        optional=True,
    )
    peer_ipv4_nexthop_address: str = proto.Field(
        proto.STRING,
        number=469221774,
        optional=True,
    )
    peer_ipv6_nexthop_address: str = proto.Field(
        proto.STRING,
        number=491486608,
        optional=True,
    )
    router_appliance_instance: str = proto.Field(
        proto.STRING,
        number=468312989,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    status_reason: str = proto.Field(
        proto.STRING,
        number=342706993,
        optional=True,
    )
    uptime: str = proto.Field(
        proto.STRING,
        number=235379688,
        optional=True,
    )
    uptime_seconds: str = proto.Field(
        proto.STRING,
        number=104736040,
        optional=True,
    )


class RouterStatusNatStatus(proto.Message):
    r"""Status of a NAT contained in this router.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_allocated_nat_ips (MutableSequence[str]):
            A list of IPs auto-allocated for NAT. Example: ["1.1.1.1",
            "129.2.16.89"]
        drain_auto_allocated_nat_ips (MutableSequence[str]):
            A list of IPs auto-allocated for NAT that are in drain mode.
            Example: ["1.1.1.1", "179.12.26.133"].
        drain_user_allocated_nat_ips (MutableSequence[str]):
            A list of IPs user-allocated for NAT that are in drain mode.
            Example: ["1.1.1.1", "179.12.26.133"].
        min_extra_nat_ips_needed (int):
            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.

            This field is a member of `oneof`_ ``_min_extra_nat_ips_needed``.
        name (str):
            Unique name of this NAT.

            This field is a member of `oneof`_ ``_name``.
        num_vm_endpoints_with_nat_mappings (int):
            Number of VM endpoints (i.e., Nics) that can
            use NAT.

            This field is a member of `oneof`_ ``_num_vm_endpoints_with_nat_mappings``.
        rule_status (MutableSequence[google.cloud.compute_v1beta.types.RouterStatusNatStatusNatRuleStatus]):
            Status of rules in this NAT.
        user_allocated_nat_ip_resources (MutableSequence[str]):
            A list of fully qualified URLs of reserved IP
            address resources.
        user_allocated_nat_ips (MutableSequence[str]):
            A list of IPs user-allocated for NAT. They
            will be raw IP strings like "179.12.26.133".
    """

    auto_allocated_nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=510794246,
    )
    drain_auto_allocated_nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=309184557,
    )
    drain_user_allocated_nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=305268553,
    )
    min_extra_nat_ips_needed: int = proto.Field(
        proto.INT32,
        number=365786338,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    num_vm_endpoints_with_nat_mappings: int = proto.Field(
        proto.INT32,
        number=512367468,
        optional=True,
    )
    rule_status: MutableSequence[
        "RouterStatusNatStatusNatRuleStatus"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=140223125,
        message="RouterStatusNatStatusNatRuleStatus",
    )
    user_allocated_nat_ip_resources: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=212776151,
    )
    user_allocated_nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=506878242,
    )


class RouterStatusNatStatusNatRuleStatus(proto.Message):
    r"""Status of a NAT Rule contained in this NAT.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        active_nat_ips (MutableSequence[str]):
            A list of active IPs for NAT. Example: ["1.1.1.1",
            "179.12.26.133"].
        drain_nat_ips (MutableSequence[str]):
            A list of IPs for NAT that are in drain mode. Example:
            ["1.1.1.1", "179.12.26.133"].
        min_extra_ips_needed (int):
            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.

            This field is a member of `oneof`_ ``_min_extra_ips_needed``.
        num_vm_endpoints_with_nat_mappings (int):
            Number of VM endpoints (i.e., NICs) that have
            NAT Mappings from this NAT Rule.

            This field is a member of `oneof`_ ``_num_vm_endpoints_with_nat_mappings``.
        rule_number (int):
            Rule number of the rule.

            This field is a member of `oneof`_ ``_rule_number``.
    """

    active_nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=208517077,
    )
    drain_nat_ips: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=504078535,
    )
    min_extra_ips_needed: int = proto.Field(
        proto.INT32,
        number=353002756,
        optional=True,
    )
    num_vm_endpoints_with_nat_mappings: int = proto.Field(
        proto.INT32,
        number=512367468,
        optional=True,
    )
    rule_number: int = proto.Field(
        proto.INT32,
        number=535211500,
        optional=True,
    )


class RouterStatusResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        result (google.cloud.compute_v1beta.types.RouterStatus):

            This field is a member of `oneof`_ ``_result``.
    """

    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    result: "RouterStatus" = proto.Field(
        proto.MESSAGE,
        number=139315229,
        optional=True,
        message="RouterStatus",
    )


class RoutersGetRoutePolicyResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        resource (google.cloud.compute_v1beta.types.RoutePolicy):

            This field is a member of `oneof`_ ``_resource``.
    """

    resource: "RoutePolicy" = proto.Field(
        proto.MESSAGE,
        number=195806222,
        optional=True,
        message="RoutePolicy",
    )


class RoutersListBgpRoutes(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always
            compute#routersListBgpRoutes for lists of bgp routes.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        result (MutableSequence[google.cloud.compute_v1beta.types.BgpRoute]):
            [Output Only] A list of bgp routes.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    result: MutableSequence["BgpRoute"] = proto.RepeatedField(
        proto.MESSAGE,
        number=139315229,
        message="BgpRoute",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RoutersListRoutePolicies(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always
            compute#routersListRoutePolicies for lists of route
            policies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        result (MutableSequence[google.cloud.compute_v1beta.types.RoutePolicy]):
            [Output Only] A list of route policies.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    result: MutableSequence["RoutePolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=139315229,
        message="RoutePolicy",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class RoutersPreviewResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        resource (google.cloud.compute_v1beta.types.Router):
            Preview of given router.

            This field is a member of `oneof`_ ``_resource``.
    """

    resource: "Router" = proto.Field(
        proto.MESSAGE,
        number=195806222,
        optional=True,
        message="Router",
    )


class RoutersScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        routers (MutableSequence[google.cloud.compute_v1beta.types.Router]):
            A list of routers contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of routers when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    routers: MutableSequence["Router"] = proto.RepeatedField(
        proto.MESSAGE,
        number=311906890,
        message="Router",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SSLHealthCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        port (int):
            The TCP port number to which the health check
            prober sends packets. The default value is 443.
            Valid values are 1 through 65535.

            This field is a member of `oneof`_ ``_port``.
        port_name (str):
            Not supported.

            This field is a member of `oneof`_ ``_port_name``.
        port_specification (str):
            Specifies how a port is selected for health checking. Can be
            one of the following values: USE_FIXED_PORT: Specifies a
            port number explicitly using the port field in the health
            check. Supported by backend services for passthrough load
            balancers and backend services for proxy load balancers. Not
            supported by target pools. The health check supports all
            backends supported by the backend service provided the
            backend can be health checked. For example, GCE_VM_IP
            network endpoint groups, GCE_VM_IP_PORT network endpoint
            groups, and instance group backends. USE_NAMED_PORT: Not
            supported. USE_SERVING_PORT: Provides an indirect method of
            specifying the health check port by referring to the backend
            service. Only supported by backend services for proxy load
            balancers. Not supported by target pools. Not supported by
            backend services for passthrough load balancers. Supports
            all backends that can be health checked; for example,
            GCE_VM_IP_PORT network endpoint groups and instance group
            backends. For GCE_VM_IP_PORT network endpoint group
            backends, the health check uses the port number specified
            for each endpoint in the network endpoint group. For
            instance group backends, the health check uses the port
            number determined by looking up the backend service's named
            port in the instance group's list of named ports. Check the
            PortSpecification enum for the list of possible values.

            This field is a member of `oneof`_ ``_port_specification``.
        proxy_header (str):
            Specifies the type of proxy header to append before sending
            data to the backend, either NONE or PROXY_V1. The default is
            NONE. Check the ProxyHeader enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_proxy_header``.
        request (str):
            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.

            This field is a member of `oneof`_ ``_request``.
        response (str):
            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

            This field is a member of `oneof`_ ``_response``.
    """

    class PortSpecification(proto.Enum):
        r"""Specifies how a port is selected for health checking. Can be one of
        the following values: USE_FIXED_PORT: Specifies a port number
        explicitly using the port field in the health check. Supported by
        backend services for passthrough load balancers and backend services
        for proxy load balancers. Not supported by target pools. The health
        check supports all backends supported by the backend service
        provided the backend can be health checked. For example, GCE_VM_IP
        network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and
        instance group backends. USE_NAMED_PORT: Not supported.
        USE_SERVING_PORT: Provides an indirect method of specifying the
        health check port by referring to the backend service. Only
        supported by backend services for proxy load balancers. Not
        supported by target pools. Not supported by backend services for
        passthrough load balancers. Supports all backends that can be health
        checked; for example, GCE_VM_IP_PORT network endpoint groups and
        instance group backends. For GCE_VM_IP_PORT network endpoint group
        backends, the health check uses the port number specified for each
        endpoint in the network endpoint group. For instance group backends,
        the health check uses the port number determined by looking up the
        backend service's named port in the instance group's list of named
        ports.

        Values:
            UNDEFINED_PORT_SPECIFICATION (0):
                A value indicating that the enum field is not
                set.
            USE_FIXED_PORT (190235748):
                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 (349300671):
                Not supported.
            USE_SERVING_PORT (362637516):
                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.
        """
        UNDEFINED_PORT_SPECIFICATION = 0
        USE_FIXED_PORT = 190235748
        USE_NAMED_PORT = 349300671
        USE_SERVING_PORT = 362637516

    class ProxyHeader(proto.Enum):
        r"""Specifies the type of proxy header to append before sending data to
        the backend, either NONE or PROXY_V1. The default is NONE.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )
    port_specification: str = proto.Field(
        proto.STRING,
        number=51590597,
        optional=True,
    )
    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )
    request: str = proto.Field(
        proto.STRING,
        number=21951119,
        optional=True,
    )
    response: str = proto.Field(
        proto.STRING,
        number=196547649,
        optional=True,
    )


class SavedAttachedDisk(proto.Message):
    r"""DEPRECATED: Please use compute#savedDisk instead. An
    instance-attached disk resource.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_delete (bool):
            Specifies whether the disk will be
            auto-deleted when the instance is deleted (but
            not when the disk is detached from the
            instance).

            This field is a member of `oneof`_ ``_auto_delete``.
        boot (bool):
            Indicates that this is a boot disk. The
            virtual machine will use the first partition of
            the disk for its root filesystem.

            This field is a member of `oneof`_ ``_boot``.
        device_name (str):
            Specifies the name of the disk attached to
            the source instance.

            This field is a member of `oneof`_ ``_device_name``.
        disk_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The encryption key for the disk.

            This field is a member of `oneof`_ ``_disk_encryption_key``.
        disk_size_gb (int):
            The size of the disk in base-2 GB.

            This field is a member of `oneof`_ ``_disk_size_gb``.
        disk_type (str):
            [Output Only] URL of the disk type resource. For example:
            projects/project /zones/zone/diskTypes/pd-standard or pd-ssd

            This field is a member of `oneof`_ ``_disk_type``.
        guest_os_features (MutableSequence[google.cloud.compute_v1beta.types.GuestOsFeature]):
            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.
        index (int):
            Specifies zero-based index of the disk that
            is attached to the source instance.

            This field is a member of `oneof`_ ``_index``.
        interface (str):
            Specifies the disk interface to use for
            attaching this disk, which is either SCSI or
            NVME. Check the Interface enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_interface``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#attachedDisk for attached disks.

            This field is a member of `oneof`_ ``_kind``.
        licenses (MutableSequence[str]):
            [Output Only] Any valid publicly visible licenses.
        mode (str):
            The mode in which this disk is attached to the source
            instance, either READ_WRITE or READ_ONLY. Check the Mode
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_mode``.
        source (str):
            Specifies a URL of the disk attached to the
            source instance.

            This field is a member of `oneof`_ ``_source``.
        storage_bytes (int):
            [Output Only] A size of the storage used by the disk's
            snapshot by this machine image.

            This field is a member of `oneof`_ ``_storage_bytes``.
        storage_bytes_status (str):
            [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.
            Check the StorageBytesStatus enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_storage_bytes_status``.
        type_ (str):
            Specifies the type of the attached disk,
            either SCRATCH or PERSISTENT. Check the Type
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Interface(proto.Enum):
        r"""Specifies the disk interface to use for attaching this disk,
        which is either SCSI or NVME.

        Values:
            UNDEFINED_INTERFACE (0):
                A value indicating that the enum field is not
                set.
            NVME (2408800):
                No description available.
            SCSI (2539686):
                No description available.
        """
        UNDEFINED_INTERFACE = 0
        NVME = 2408800
        SCSI = 2539686

    class Mode(proto.Enum):
        r"""The mode in which this disk is attached to the source instance,
        either READ_WRITE or READ_ONLY.

        Values:
            UNDEFINED_MODE (0):
                A value indicating that the enum field is not
                set.
            READ_ONLY (91950261):
                Attaches this disk in read-only mode.
                Multiple virtual machines can use a disk in
                read-only mode at a time.
            READ_WRITE (173607894):
                *[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.
        """
        UNDEFINED_MODE = 0
        READ_ONLY = 91950261
        READ_WRITE = 173607894

    class StorageBytesStatus(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STORAGE_BYTES_STATUS (0):
                A value indicating that the enum field is not
                set.
            UPDATING (494614342):
                No description available.
            UP_TO_DATE (101306702):
                No description available.
        """
        UNDEFINED_STORAGE_BYTES_STATUS = 0
        UPDATING = 494614342
        UP_TO_DATE = 101306702

    class Type(proto.Enum):
        r"""Specifies the type of the attached disk, either SCRATCH or
        PERSISTENT.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            PERSISTENT (460683927):
                No description available.
            SCRATCH (496778970):
                No description available.
        """
        UNDEFINED_TYPE = 0
        PERSISTENT = 460683927
        SCRATCH = 496778970

    auto_delete: bool = proto.Field(
        proto.BOOL,
        number=464761403,
        optional=True,
    )
    boot: bool = proto.Field(
        proto.BOOL,
        number=3029746,
        optional=True,
    )
    device_name: str = proto.Field(
        proto.STRING,
        number=67541716,
        optional=True,
    )
    disk_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=271660677,
        optional=True,
        message="CustomerEncryptionKey",
    )
    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )
    disk_type: str = proto.Field(
        proto.STRING,
        number=93009052,
        optional=True,
    )
    guest_os_features: MutableSequence["GuestOsFeature"] = proto.RepeatedField(
        proto.MESSAGE,
        number=79294545,
        message="GuestOsFeature",
    )
    index: int = proto.Field(
        proto.INT32,
        number=100346066,
        optional=True,
    )
    interface: str = proto.Field(
        proto.STRING,
        number=502623545,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337642578,
    )
    mode: str = proto.Field(
        proto.STRING,
        number=3357091,
        optional=True,
    )
    source: str = proto.Field(
        proto.STRING,
        number=177235995,
        optional=True,
    )
    storage_bytes: int = proto.Field(
        proto.INT64,
        number=424631719,
        optional=True,
    )
    storage_bytes_status: str = proto.Field(
        proto.STRING,
        number=490739082,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class SavedDisk(proto.Message):
    r"""An instance-attached disk resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        architecture (str):
            [Output Only] The architecture of the attached disk. Check
            the Architecture enum for the list of possible values.

            This field is a member of `oneof`_ ``_architecture``.
        kind (str):
            [Output Only] Type of the resource. Always compute#savedDisk
            for attached disks.

            This field is a member of `oneof`_ ``_kind``.
        source_disk (str):
            Specifies a URL of the disk attached to the
            source instance.

            This field is a member of `oneof`_ ``_source_disk``.
        storage_bytes (int):
            [Output Only] Size of the individual disk snapshot used by
            this machine image.

            This field is a member of `oneof`_ ``_storage_bytes``.
        storage_bytes_status (str):
            [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.
            Check the StorageBytesStatus enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_storage_bytes_status``.
    """

    class Architecture(proto.Enum):
        r"""[Output Only] The architecture of the attached disk.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    class StorageBytesStatus(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STORAGE_BYTES_STATUS (0):
                A value indicating that the enum field is not
                set.
            UPDATING (494614342):
                No description available.
            UP_TO_DATE (101306702):
                No description available.
        """
        UNDEFINED_STORAGE_BYTES_STATUS = 0
        UPDATING = 494614342
        UP_TO_DATE = 101306702

    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    source_disk: str = proto.Field(
        proto.STRING,
        number=451753793,
        optional=True,
    )
    storage_bytes: int = proto.Field(
        proto.INT64,
        number=424631719,
        optional=True,
    )
    storage_bytes_status: str = proto.Field(
        proto.STRING,
        number=490739082,
        optional=True,
    )


class ScalingScheduleStatus(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        last_start_time (str):
            [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.

            This field is a member of `oneof`_ ``_last_start_time``.
        next_start_time (str):
            [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.

            This field is a member of `oneof`_ ``_next_start_time``.
        state (str):
            [Output Only] The current state of a scaling schedule. Check
            the State enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
    """

    class State(proto.Enum):
        r"""[Output Only] The current state of a scaling schedule.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                The current autoscaling recommendation is
                influenced by this scaling schedule.
            DISABLED (516696700):
                This scaling schedule has been disabled by
                the user.
            OBSOLETE (66532761):
                This scaling schedule will never become
                active again.
            READY (77848963):
                The current autoscaling recommendation is not
                influenced by this scaling schedule.
        """
        UNDEFINED_STATE = 0
        ACTIVE = 314733318
        DISABLED = 516696700
        OBSOLETE = 66532761
        READY = 77848963

    last_start_time: str = proto.Field(
        proto.STRING,
        number=34545107,
        optional=True,
    )
    next_start_time: str = proto.Field(
        proto.STRING,
        number=97270102,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )


class Scheduling(proto.Message):
    r"""Sets the scheduling options for an Instance.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        automatic_restart (bool):
            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.

            This field is a member of `oneof`_ ``_automatic_restart``.
        availability_domain (int):
            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.

            This field is a member of `oneof`_ ``_availability_domain``.
        graceful_shutdown (google.cloud.compute_v1beta.types.SchedulingGracefulShutdown):

            This field is a member of `oneof`_ ``_graceful_shutdown``.
        host_error_timeout_seconds (int):
            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.

            This field is a member of `oneof`_ ``_host_error_timeout_seconds``.
        instance_termination_action (str):
            Specifies the termination action for the
            instance. Check the InstanceTerminationAction
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_instance_termination_action``.
        local_ssd_recovery_timeout (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_local_ssd_recovery_timeout``.
        location_hint (str):
            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.

            This field is a member of `oneof`_ ``_location_hint``.
        maintenance_freeze_duration_hours (int):
            Specifies the number of hours after VM
            instance creation where the VM won't be
            scheduled for maintenance.

            This field is a member of `oneof`_ ``_maintenance_freeze_duration_hours``.
        maintenance_interval (str):
            Specifies the frequency of planned maintenance events. The
            accepted values are: ``PERIODIC``. Check the
            MaintenanceInterval enum for the list of possible values.

            This field is a member of `oneof`_ ``_maintenance_interval``.
        max_run_duration (google.cloud.compute_v1beta.types.Duration):
            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.

            This field is a member of `oneof`_ ``_max_run_duration``.
        min_node_cpus (int):
            The minimum number of virtual CPUs this
            instance will consume when running on a
            sole-tenant node.

            This field is a member of `oneof`_ ``_min_node_cpus``.
        node_affinities (MutableSequence[google.cloud.compute_v1beta.types.SchedulingNodeAffinity]):
            A set of node affinity and anti-affinity
            configurations. Refer to Configuring node
            affinity for more information. Overrides
            reservationAffinity.
        on_host_maintenance (str):
            Defines the maintenance behavior for this
            instance. For standard instances, the default
            behavior is MIGRATE. For preemptible instances,
            the default and only possible behavior is
            TERMINATE. For more information, see Set VM host
            maintenance policy. Check the OnHostMaintenance
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_on_host_maintenance``.
        on_instance_stop_action (google.cloud.compute_v1beta.types.SchedulingOnInstanceStopAction):

            This field is a member of `oneof`_ ``_on_instance_stop_action``.
        preemptible (bool):
            Defines whether the instance is preemptible. This can only
            be set during instance creation or while the instance is
            stopped and therefore, in a ``TERMINATED`` state. See
            Instance Life Cycle for more information on the possible
            instance states.

            This field is a member of `oneof`_ ``_preemptible``.
        provisioning_model (str):
            Specifies the provisioning model of the
            instance. Check the ProvisioningModel enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_provisioning_model``.
        termination_time (str):
            Specifies the timestamp, when the instance
            will be terminated, in RFC3339 text format. If
            specified, the instance termination action will
            be performed at the termination time.

            This field is a member of `oneof`_ ``_termination_time``.
    """

    class InstanceTerminationAction(proto.Enum):
        r"""Specifies the termination action for the instance.

        Values:
            UNDEFINED_INSTANCE_TERMINATION_ACTION (0):
                A value indicating that the enum field is not
                set.
            DELETE (402225579):
                Delete the VM.
            INSTANCE_TERMINATION_ACTION_UNSPECIFIED (92954803):
                Default value. This value is unused.
            STOP (2555906):
                Stop the VM without storing in-memory
                content. default action.
        """
        UNDEFINED_INSTANCE_TERMINATION_ACTION = 0
        DELETE = 402225579
        INSTANCE_TERMINATION_ACTION_UNSPECIFIED = 92954803
        STOP = 2555906

    class MaintenanceInterval(proto.Enum):
        r"""Specifies the frequency of planned maintenance events. The accepted
        values are: ``PERIODIC``.

        Values:
            UNDEFINED_MAINTENANCE_INTERVAL (0):
                A value indicating that the enum field is not
                set.
            AS_NEEDED (500724834):
                VMs are eligible to receive infrastructure
                and hypervisor updates as they become available.
                This may result in more maintenance operations
                (live migrations or terminations) for the VM
                than the PERIODIC and RECURRENT options.
            PERIODIC (142804635):
                VMs receive infrastructure and hypervisor updates on a
                periodic basis, minimizing the number of maintenance
                operations (live migrations or terminations) on an
                individual VM. This may mean a VM will take longer to
                receive an update than if it was configured for AS_NEEDED.
                Security updates will still be applied as soon as they are
                available.
            RECURRENT (194244550):
                VMs receive infrastructure and hypervisor updates on a
                periodic basis, minimizing the number of maintenance
                operations (live migrations or terminations) on an
                individual VM. This may mean a VM will take longer to
                receive an update than if it was configured for AS_NEEDED.
                Security updates will still be applied as soon as they are
                available. RECURRENT is used for GEN3 and Slice of Hardware
                VMs.
        """
        UNDEFINED_MAINTENANCE_INTERVAL = 0
        AS_NEEDED = 500724834
        PERIODIC = 142804635
        RECURRENT = 194244550

    class OnHostMaintenance(proto.Enum):
        r"""Defines the maintenance behavior for this instance. For
        standard instances, the default behavior is MIGRATE. For
        preemptible instances, the default and only possible behavior is
        TERMINATE. For more information, see Set VM host maintenance
        policy.

        Values:
            UNDEFINED_ON_HOST_MAINTENANCE (0):
                A value indicating that the enum field is not
                set.
            MIGRATE (165699979):
                *[Default]* Allows Compute Engine to automatically migrate
                instances out of the way of maintenance events.
            TERMINATE (527617601):
                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.
        """
        UNDEFINED_ON_HOST_MAINTENANCE = 0
        MIGRATE = 165699979
        TERMINATE = 527617601

    class ProvisioningModel(proto.Enum):
        r"""Specifies the provisioning model of the instance.

        Values:
            UNDEFINED_PROVISIONING_MODEL (0):
                A value indicating that the enum field is not
                set.
            FLEX_START (101746812):
                Instance is provisioned using the Flex Start
                provisioning model and has a limited runtime.
            RESERVATION_BOUND (293538571):
                Bound to the lifecycle of the reservation in
                which it is provisioned.
            SPOT (2552066):
                Heavily discounted, no guaranteed runtime.
            STANDARD (484642493):
                Standard provisioning with user controlled
                runtime, no discounts.
        """
        UNDEFINED_PROVISIONING_MODEL = 0
        FLEX_START = 101746812
        RESERVATION_BOUND = 293538571
        SPOT = 2552066
        STANDARD = 484642493

    automatic_restart: bool = proto.Field(
        proto.BOOL,
        number=350821371,
        optional=True,
    )
    availability_domain: int = proto.Field(
        proto.INT32,
        number=252514344,
        optional=True,
    )
    graceful_shutdown: "SchedulingGracefulShutdown" = proto.Field(
        proto.MESSAGE,
        number=226325136,
        optional=True,
        message="SchedulingGracefulShutdown",
    )
    host_error_timeout_seconds: int = proto.Field(
        proto.INT32,
        number=408317459,
        optional=True,
    )
    instance_termination_action: str = proto.Field(
        proto.STRING,
        number=107380667,
        optional=True,
    )
    local_ssd_recovery_timeout: "Duration" = proto.Field(
        proto.MESSAGE,
        number=268015590,
        optional=True,
        message="Duration",
    )
    location_hint: str = proto.Field(
        proto.STRING,
        number=350519505,
        optional=True,
    )
    maintenance_freeze_duration_hours: int = proto.Field(
        proto.INT32,
        number=371662624,
        optional=True,
    )
    maintenance_interval: str = proto.Field(
        proto.STRING,
        number=403368049,
        optional=True,
    )
    max_run_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=430839747,
        optional=True,
        message="Duration",
    )
    min_node_cpus: int = proto.Field(
        proto.INT32,
        number=317231675,
        optional=True,
    )
    node_affinities: MutableSequence["SchedulingNodeAffinity"] = proto.RepeatedField(
        proto.MESSAGE,
        number=461799971,
        message="SchedulingNodeAffinity",
    )
    on_host_maintenance: str = proto.Field(
        proto.STRING,
        number=64616796,
        optional=True,
    )
    on_instance_stop_action: "SchedulingOnInstanceStopAction" = proto.Field(
        proto.MESSAGE,
        number=529876681,
        optional=True,
        message="SchedulingOnInstanceStopAction",
    )
    preemptible: bool = proto.Field(
        proto.BOOL,
        number=324203169,
        optional=True,
    )
    provisioning_model: str = proto.Field(
        proto.STRING,
        number=494423,
        optional=True,
    )
    termination_time: str = proto.Field(
        proto.STRING,
        number=428082984,
        optional=True,
    )


class SchedulingGracefulShutdown(proto.Message):
    r"""The configuration for gracefully shutting down the instance.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enabled (bool):
            Opts-in for graceful shutdown.

            This field is a member of `oneof`_ ``_enabled``.
        max_duration (google.cloud.compute_v1beta.types.Duration):
            The time allotted for the instance to
            gracefully shut down. If the graceful shutdown
            isn't complete after this time, then the
            instance transitions to the STOPPING state.

            This field is a member of `oneof`_ ``_max_duration``.
    """

    enabled: bool = proto.Field(
        proto.BOOL,
        number=1018689,
        optional=True,
    )
    max_duration: "Duration" = proto.Field(
        proto.MESSAGE,
        number=39954959,
        optional=True,
        message="Duration",
    )


class SchedulingNodeAffinity(proto.Message):
    r"""Node Affinity: the configuration of desired nodes onto which
    this Instance could be scheduled.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        key (str):
            Corresponds to the label key of Node
            resource.

            This field is a member of `oneof`_ ``_key``.
        operator (str):
            Defines the operation of node selection. Valid operators are
            IN for affinity and NOT_IN for anti-affinity. Check the
            Operator enum for the list of possible values.

            This field is a member of `oneof`_ ``_operator``.
        values (MutableSequence[str]):
            Corresponds to the label values of Node
            resource.
    """

    class Operator(proto.Enum):
        r"""Defines the operation of node selection. Valid operators are IN for
        affinity and NOT_IN for anti-affinity.

        Values:
            UNDEFINED_OPERATOR (0):
                A value indicating that the enum field is not
                set.
            IN (2341):
                Requires Compute Engine to seek for matched
                nodes.
            NOT_IN (161144369):
                Requires Compute Engine to avoid certain
                nodes.
            OPERATOR_UNSPECIFIED (128892924):
                No description available.
        """
        UNDEFINED_OPERATOR = 0
        IN = 2341
        NOT_IN = 161144369
        OPERATOR_UNSPECIFIED = 128892924

    key: str = proto.Field(
        proto.STRING,
        number=106079,
        optional=True,
    )
    operator: str = proto.Field(
        proto.STRING,
        number=36317348,
        optional=True,
    )
    values: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=249928994,
    )


class SchedulingOnInstanceStopAction(proto.Message):
    r"""Defines the behaviour for instances with the
    instance_termination_action STOP.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        discard_local_ssd (bool):
            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.

            This field is a member of `oneof`_ ``_discard_local_ssd``.
    """

    discard_local_ssd: bool = proto.Field(
        proto.BOOL,
        number=319517903,
        optional=True,
    )


class Screenshot(proto.Message):
    r"""An instance's screenshot.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        contents (str):
            [Output Only] The Base64-encoded screenshot data.

            This field is a member of `oneof`_ ``_contents``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#screenshot for the screenshots.

            This field is a member of `oneof`_ ``_kind``.
    """

    contents: str = proto.Field(
        proto.STRING,
        number=506419994,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )


class SecurityPoliciesAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.SecurityPoliciesScopedList]):
            A list of SecurityPoliciesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#securityPolicyAggregatedList for lists of Security
            Policies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "SecurityPoliciesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="SecurityPoliciesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SecurityPoliciesListPreconfiguredExpressionSetsResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        preconfigured_expression_sets (google.cloud.compute_v1beta.types.SecurityPoliciesWafConfig):

            This field is a member of `oneof`_ ``_preconfigured_expression_sets``.
    """

    preconfigured_expression_sets: "SecurityPoliciesWafConfig" = proto.Field(
        proto.MESSAGE,
        number=536200826,
        optional=True,
        message="SecurityPoliciesWafConfig",
    )


class SecurityPoliciesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        security_policies (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicy]):
            A list of SecurityPolicies contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of security policies when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    security_policies: MutableSequence["SecurityPolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=127783791,
        message="SecurityPolicy",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SecurityPoliciesWafConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        waf_rules (google.cloud.compute_v1beta.types.PreconfiguredWafSet):

            This field is a member of `oneof`_ ``_waf_rules``.
    """

    waf_rules: "PreconfiguredWafSet" = proto.Field(
        proto.MESSAGE,
        number=74899924,
        optional=True,
        message="PreconfiguredWafSet",
    )


class SecurityPolicy(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        adaptive_protection_config (google.cloud.compute_v1beta.types.SecurityPolicyAdaptiveProtectionConfig):

            This field is a member of `oneof`_ ``_adaptive_protection_config``.
        advanced_options_config (google.cloud.compute_v1beta.types.SecurityPolicyAdvancedOptionsConfig):

            This field is a member of `oneof`_ ``_advanced_options_config``.
        associations (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyAssociation]):
            A list of associations that belong to this
            policy.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        ddos_protection_config (google.cloud.compute_v1beta.types.SecurityPolicyDdosProtectionConfig):

            This field is a member of `oneof`_ ``_ddos_protection_config``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        display_name (str):
            User-provided name of the organization security policy. The
            name should be unique in the organization in which the
            security policy is created. This should only be used when
            SecurityPolicyType is FIREWALL. The name must be 1-63
            characters long, and comply with
            https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name
            must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_display_name``.
        fingerprint (str):
            Specifies a fingerprint for this resource,
            which is essentially a hash of the metadata's
            contents and used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update metadata. You must always provide an
            up-to-date fingerprint hash in order to update
            or change metadata, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make get() request to the
            security policy.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output only] Type of the resource. Always
            compute#securityPolicyfor security policies

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        parent (str):
            [Output Only] The parent of the security policy.

            This field is a member of `oneof`_ ``_parent``.
        recaptcha_options_config (google.cloud.compute_v1beta.types.SecurityPolicyRecaptchaOptionsConfig):

            This field is a member of `oneof`_ ``_recaptcha_options_config``.
        region (str):
            [Output Only] URL of the region where the regional security
            policy resides. This field is not applicable to global
            security policies.

            This field is a member of `oneof`_ ``_region``.
        rule_tuple_count (int):
            [Output Only] Total count of all security policy rule
            tuples. A security policy can not exceed a set number of
            tuples.

            This field is a member of `oneof`_ ``_rule_tuple_count``.
        rules (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRule]):
            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.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        short_name (str):
            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.

            This field is a member of `oneof`_ ``_short_name``.
        type_ (str):
            The type indicates the intended use of the security policy.
            - CLOUD_ARMOR: Cloud Armor backend security policies can be
            configured to filter incoming HTTP requests targeting
            backend services. They filter requests before they hit the
            origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge
            security policies can be configured to filter incoming HTTP
            requests targeting backend services (including Cloud
            CDN-enabled) as well as backend buckets (Cloud Storage).
            They filter requests before the request is served from
            Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor
            internal service policies can be configured to filter HTTP
            requests targeting services managed by Traffic Director in a
            service mesh. They filter requests before the request is
            served from the application. - CLOUD_ARMOR_NETWORK: Cloud
            Armor network policies can be configured to filter packets
            targeting network load balancing resources such as backend
            services, target pools, target instances, and instances with
            external IPs. They filter requests before the request is
            served from the application. This field can be set only at
            resource creation time. Check the Type enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_type``.
        user_defined_fields (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyUserDefinedField]):
            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".
    """

    class Type(proto.Enum):
        r"""The type indicates the intended use of the security policy. -
        CLOUD_ARMOR: Cloud Armor backend security policies can be configured
        to filter incoming HTTP requests targeting backend services. They
        filter requests before they hit the origin servers. -
        CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be
        configured to filter incoming HTTP requests targeting backend
        services (including Cloud CDN-enabled) as well as backend buckets
        (Cloud Storage). They filter requests before the request is served
        from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor
        internal service policies can be configured to filter HTTP requests
        targeting services managed by Traffic Director in a service mesh.
        They filter requests before the request is served from the
        application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can
        be configured to filter packets targeting network load balancing
        resources such as backend services, target pools, target instances,
        and instances with external IPs. They filter requests before the
        request is served from the application. This field can be set only
        at resource creation time.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            CLOUD_ARMOR (260640373):
                No description available.
            CLOUD_ARMOR_EDGE (250728775):
                No description available.
            CLOUD_ARMOR_INTERNAL_SERVICE (442437533):
                No description available.
            CLOUD_ARMOR_NETWORK (488527428):
                No description available.
            FIREWALL (219901184):
                No description available.
        """
        UNDEFINED_TYPE = 0
        CLOUD_ARMOR = 260640373
        CLOUD_ARMOR_EDGE = 250728775
        CLOUD_ARMOR_INTERNAL_SERVICE = 442437533
        CLOUD_ARMOR_NETWORK = 488527428
        FIREWALL = 219901184

    adaptive_protection_config: "SecurityPolicyAdaptiveProtectionConfig" = proto.Field(
        proto.MESSAGE,
        number=150240735,
        optional=True,
        message="SecurityPolicyAdaptiveProtectionConfig",
    )
    advanced_options_config: "SecurityPolicyAdvancedOptionsConfig" = proto.Field(
        proto.MESSAGE,
        number=449276352,
        optional=True,
        message="SecurityPolicyAdvancedOptionsConfig",
    )
    associations: MutableSequence["SecurityPolicyAssociation"] = proto.RepeatedField(
        proto.MESSAGE,
        number=508736530,
        message="SecurityPolicyAssociation",
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    ddos_protection_config: "SecurityPolicyDdosProtectionConfig" = proto.Field(
        proto.MESSAGE,
        number=50315853,
        optional=True,
        message="SecurityPolicyDdosProtectionConfig",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    display_name: str = proto.Field(
        proto.STRING,
        number=4473832,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    parent: str = proto.Field(
        proto.STRING,
        number=78317738,
        optional=True,
    )
    recaptcha_options_config: "SecurityPolicyRecaptchaOptionsConfig" = proto.Field(
        proto.MESSAGE,
        number=519006811,
        optional=True,
        message="SecurityPolicyRecaptchaOptionsConfig",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    rule_tuple_count: int = proto.Field(
        proto.INT32,
        number=388342037,
        optional=True,
    )
    rules: MutableSequence["SecurityPolicyRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=108873975,
        message="SecurityPolicyRule",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    short_name: str = proto.Field(
        proto.STRING,
        number=492051566,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    user_defined_fields: MutableSequence[
        "SecurityPolicyUserDefinedField"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=28312739,
        message="SecurityPolicyUserDefinedField",
    )


class SecurityPolicyAdaptiveProtectionConfig(proto.Message):
    r"""Configuration options for Cloud Armor Adaptive Protection
    (CAAP).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_deploy_config (google.cloud.compute_v1beta.types.SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig):

            This field is a member of `oneof`_ ``_auto_deploy_config``.
        layer7_ddos_defense_config (google.cloud.compute_v1beta.types.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig):
            If set to true, enables Cloud Armor Machine
            Learning.

            This field is a member of `oneof`_ ``_layer7_ddos_defense_config``.
    """

    auto_deploy_config: "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig" = (
        proto.Field(
            proto.MESSAGE,
            number=294330122,
            optional=True,
            message="SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig",
        )
    )
    layer7_ddos_defense_config: "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig" = proto.Field(
        proto.MESSAGE,
        number=437316771,
        optional=True,
        message="SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig",
    )


class SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig(proto.Message):
    r"""Configuration options for Adaptive Protection auto-deploy
    feature.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        confidence_threshold (float):

            This field is a member of `oneof`_ ``_confidence_threshold``.
        expiration_sec (int):

            This field is a member of `oneof`_ ``_expiration_sec``.
        impacted_baseline_threshold (float):

            This field is a member of `oneof`_ ``_impacted_baseline_threshold``.
        load_threshold (float):

            This field is a member of `oneof`_ ``_load_threshold``.
    """

    confidence_threshold: float = proto.Field(
        proto.FLOAT,
        number=356194550,
        optional=True,
    )
    expiration_sec: int = proto.Field(
        proto.INT32,
        number=405751489,
        optional=True,
    )
    impacted_baseline_threshold: float = proto.Field(
        proto.FLOAT,
        number=375471371,
        optional=True,
    )
    load_threshold: float = proto.Field(
        proto.FLOAT,
        number=321469522,
        optional=True,
    )


class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig(proto.Message):
    r"""Configuration options for L7 DDoS detection. This field is only
    supported in Global Security Policies of type CLOUD_ARMOR.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable (bool):
            If set to true, enables CAAP for L7 DDoS detection. This
            field is only supported in Global Security Policies of type
            CLOUD_ARMOR.

            This field is a member of `oneof`_ ``_enable``.
        rule_visibility (str):
            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. Check the RuleVisibility enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_rule_visibility``.
        threshold_configs (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig]):
            Configuration options for layer7 adaptive
            protection for various customizable thresholds.
    """

    class RuleVisibility(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_RULE_VISIBILITY (0):
                A value indicating that the enum field is not
                set.
            PREMIUM (399530551):
                No description available.
            STANDARD (484642493):
                No description available.
        """
        UNDEFINED_RULE_VISIBILITY = 0
        PREMIUM = 399530551
        STANDARD = 484642493

    enable: bool = proto.Field(
        proto.BOOL,
        number=311764355,
        optional=True,
    )
    rule_visibility: str = proto.Field(
        proto.STRING,
        number=453258293,
        optional=True,
    )
    threshold_configs: MutableSequence[
        "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=60347805,
        message="SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig",
    )


class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig(
    proto.Message
):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_deploy_confidence_threshold (float):

            This field is a member of `oneof`_ ``_auto_deploy_confidence_threshold``.
        auto_deploy_expiration_sec (int):

            This field is a member of `oneof`_ ``_auto_deploy_expiration_sec``.
        auto_deploy_impacted_baseline_threshold (float):

            This field is a member of `oneof`_ ``_auto_deploy_impacted_baseline_threshold``.
        auto_deploy_load_threshold (float):

            This field is a member of `oneof`_ ``_auto_deploy_load_threshold``.
        detection_absolute_qps (float):

            This field is a member of `oneof`_ ``_detection_absolute_qps``.
        detection_load_threshold (float):

            This field is a member of `oneof`_ ``_detection_load_threshold``.
        detection_relative_to_baseline_qps (float):

            This field is a member of `oneof`_ ``_detection_relative_to_baseline_qps``.
        name (str):
            The name must be 1-63 characters long, and
            comply with RFC1035. The name must be unique
            within the security policy.

            This field is a member of `oneof`_ ``_name``.
        traffic_granularity_configs (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig]):
            Configuration options for enabling Adaptive
            Protection to operate on specified granular
            traffic units.
    """

    auto_deploy_confidence_threshold: float = proto.Field(
        proto.FLOAT,
        number=84309694,
        optional=True,
    )
    auto_deploy_expiration_sec: int = proto.Field(
        proto.INT32,
        number=69638793,
        optional=True,
    )
    auto_deploy_impacted_baseline_threshold: float = proto.Field(
        proto.FLOAT,
        number=292441667,
        optional=True,
    )
    auto_deploy_load_threshold: float = proto.Field(
        proto.FLOAT,
        number=522227738,
        optional=True,
    )
    detection_absolute_qps: float = proto.Field(
        proto.FLOAT,
        number=383123174,
        optional=True,
    )
    detection_load_threshold: float = proto.Field(
        proto.FLOAT,
        number=430499148,
        optional=True,
    )
    detection_relative_to_baseline_qps: float = proto.Field(
        proto.FLOAT,
        number=291343749,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    traffic_granularity_configs: MutableSequence[
        "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=85367358,
        message="SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig",
    )


class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig(
    proto.Message
):
    r"""Configurations to specifc granular traffic units processed by
    Adaptive Protection.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable_each_unique_value (bool):
            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.

            This field is a member of `oneof`_ ``_enable_each_unique_value``.
        type_ (str):
            Type of this configuration.
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
        value (str):
            Requests that match this value constitute a
            granular traffic unit.

            This field is a member of `oneof`_ ``_value``.
    """

    class Type(proto.Enum):
        r"""Type of this configuration.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            HTTP_HEADER_HOST (374321891):
                No description available.
            HTTP_PATH (311503228):
                No description available.
            UNSPECIFIED_TYPE (53933922):
                No description available.
        """
        UNDEFINED_TYPE = 0
        HTTP_HEADER_HOST = 374321891
        HTTP_PATH = 311503228
        UNSPECIFIED_TYPE = 53933922

    enable_each_unique_value: bool = proto.Field(
        proto.BOOL,
        number=469206341,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    value: str = proto.Field(
        proto.STRING,
        number=111972721,
        optional=True,
    )


class SecurityPolicyAdvancedOptionsConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        json_custom_config (google.cloud.compute_v1beta.types.SecurityPolicyAdvancedOptionsConfigJsonCustomConfig):
            Custom configuration to apply the JSON parsing. Only
            applicable when json_parsing is set to STANDARD.

            This field is a member of `oneof`_ ``_json_custom_config``.
        json_parsing (str):
            Check the JsonParsing enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_json_parsing``.
        log_level (str):
            Check the LogLevel enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_log_level``.
        request_body_inspection_size (str):
            The maximum request size chosen by the
            customer with Waf enabled. Values supported are
            "8KB", "16KB, "32KB", "48KB" and "64KB". Values
            are case insensitive.

            This field is a member of `oneof`_ ``_request_body_inspection_size``.
        user_ip_request_headers (MutableSequence[str]):
            An optional list of case-insensitive request
            header names to use for resolving the callers
            client IP address.
    """

    class JsonParsing(proto.Enum):
        r"""

        Values:
            UNDEFINED_JSON_PARSING (0):
                A value indicating that the enum field is not
                set.
            DISABLED (516696700):
                No description available.
            STANDARD (484642493):
                No description available.
            STANDARD_WITH_GRAPHQL (106979218):
                No description available.
        """
        UNDEFINED_JSON_PARSING = 0
        DISABLED = 516696700
        STANDARD = 484642493
        STANDARD_WITH_GRAPHQL = 106979218

    class LogLevel(proto.Enum):
        r"""

        Values:
            UNDEFINED_LOG_LEVEL (0):
                A value indicating that the enum field is not
                set.
            NORMAL (161067239):
                No description available.
            VERBOSE (532219234):
                No description available.
        """
        UNDEFINED_LOG_LEVEL = 0
        NORMAL = 161067239
        VERBOSE = 532219234

    json_custom_config: "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig" = (
        proto.Field(
            proto.MESSAGE,
            number=111570105,
            optional=True,
            message="SecurityPolicyAdvancedOptionsConfigJsonCustomConfig",
        )
    )
    json_parsing: str = proto.Field(
        proto.STRING,
        number=282493529,
        optional=True,
    )
    log_level: str = proto.Field(
        proto.STRING,
        number=140582601,
        optional=True,
    )
    request_body_inspection_size: str = proto.Field(
        proto.STRING,
        number=191268607,
        optional=True,
    )
    user_ip_request_headers: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=421050290,
    )


class SecurityPolicyAdvancedOptionsConfigJsonCustomConfig(proto.Message):
    r"""

    Attributes:
        content_types (MutableSequence[str]):
            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.
    """

    content_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=17428787,
    )


class SecurityPolicyAssociation(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attachment_id (str):
            The resource that the security policy is
            attached to.

            This field is a member of `oneof`_ ``_attachment_id``.
        display_name (str):
            [Output Only] The display name of the security policy of the
            association.

            This field is a member of `oneof`_ ``_display_name``.
        excluded_folders (MutableSequence[str]):
            A list of folders to exclude from the
            security policy.
        excluded_projects (MutableSequence[str]):
            A list of projects to exclude from the
            security policy.
        name (str):
            The name for an association.

            This field is a member of `oneof`_ ``_name``.
        security_policy_id (str):
            [Output Only] The security policy ID of the association.

            This field is a member of `oneof`_ ``_security_policy_id``.
        short_name (str):
            [Output Only] The short name of the security policy of the
            association.

            This field is a member of `oneof`_ ``_short_name``.
    """

    attachment_id: str = proto.Field(
        proto.STRING,
        number=103768503,
        optional=True,
    )
    display_name: str = proto.Field(
        proto.STRING,
        number=4473832,
        optional=True,
    )
    excluded_folders: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=310611024,
    )
    excluded_projects: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=283070287,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    security_policy_id: str = proto.Field(
        proto.STRING,
        number=203671817,
        optional=True,
    )
    short_name: str = proto.Field(
        proto.STRING,
        number=492051566,
        optional=True,
    )


class SecurityPolicyDdosProtectionConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ddos_protection (str):
            Check the DdosProtection enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_ddos_protection``.
    """

    class DdosProtection(proto.Enum):
        r"""

        Values:
            UNDEFINED_DDOS_PROTECTION (0):
                A value indicating that the enum field is not
                set.
            ADVANCED (63789090):
                No description available.
            ADVANCED_PREVIEW (40905867):
                No description available.
            STANDARD (484642493):
                No description available.
        """
        UNDEFINED_DDOS_PROTECTION = 0
        ADVANCED = 63789090
        ADVANCED_PREVIEW = 40905867
        STANDARD = 484642493

    ddos_protection: str = proto.Field(
        proto.STRING,
        number=275173268,
        optional=True,
    )


class SecurityPolicyList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicy]):
            A list of SecurityPolicy resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#securityPolicyList for listsof securityPolicies

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["SecurityPolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="SecurityPolicy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SecurityPolicyRecaptchaOptionsConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        redirect_site_key (str):
            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.

            This field is a member of `oneof`_ ``_redirect_site_key``.
    """

    redirect_site_key: str = proto.Field(
        proto.STRING,
        number=447677034,
        optional=True,
    )


class SecurityPolicyReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        security_policy (str):

            This field is a member of `oneof`_ ``_security_policy``.
    """

    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
        optional=True,
    )


class SecurityPolicyRule(proto.Message):
    r"""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).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        action (str):
            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.

            This field is a member of `oneof`_ ``_action``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        direction (str):
            The direction in which this rule applies. This field may
            only be specified when versioned_expr is set to FIREWALL.
            Check the Direction enum for the list of possible values.

            This field is a member of `oneof`_ ``_direction``.
        enable_logging (bool):
            Denotes whether to enable logging for a particular rule. If
            logging is enabled, logs will be exported to the configured
            export destination in Stackdriver. Logs may be exported to
            BigQuery or Pub/Sub. Note: you cannot enable logging on
            "goto_next" rules. This field may only be specified when the
            versioned_expr is set to FIREWALL.

            This field is a member of `oneof`_ ``_enable_logging``.
        header_action (google.cloud.compute_v1beta.types.SecurityPolicyRuleHttpHeaderAction):
            Optional, additional actions that are performed on headers.
            This field is only supported in Global Security Policies of
            type CLOUD_ARMOR.

            This field is a member of `oneof`_ ``_header_action``.
        kind (str):
            [Output only] Type of the resource. Always
            compute#securityPolicyRule for security policy rules

            This field is a member of `oneof`_ ``_kind``.
        match (google.cloud.compute_v1beta.types.SecurityPolicyRuleMatcher):
            A match condition that incoming traffic is
            evaluated against. If it evaluates to true, the
            corresponding 'action' is enforced.

            This field is a member of `oneof`_ ``_match``.
        network_match (google.cloud.compute_v1beta.types.SecurityPolicyRuleNetworkMatcher):
            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.

            This field is a member of `oneof`_ ``_network_match``.
        preconfigured_waf_config (google.cloud.compute_v1beta.types.SecurityPolicyRulePreconfiguredWafConfig):
            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.

            This field is a member of `oneof`_ ``_preconfigured_waf_config``.
        preview (bool):
            If set to true, the specified action is not
            enforced.

            This field is a member of `oneof`_ ``_preview``.
        priority (int):
            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.

            This field is a member of `oneof`_ ``_priority``.
        rate_limit_options (google.cloud.compute_v1beta.types.SecurityPolicyRuleRateLimitOptions):
            Must be specified if the action is "rate_based_ban" or
            "throttle". Cannot be specified for any other actions.

            This field is a member of `oneof`_ ``_rate_limit_options``.
        redirect_options (google.cloud.compute_v1beta.types.SecurityPolicyRuleRedirectOptions):
            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.

            This field is a member of `oneof`_ ``_redirect_options``.
        rule_number (int):
            Identifier for the rule. This is only unique
            within the given security policy. This can only
            be set during rule creation, if rule number is
            not specified it will be generated by the
            server.

            This field is a member of `oneof`_ ``_rule_number``.
        rule_tuple_count (int):
            [Output Only] Calculation of the complexity of a single
            firewall security policy rule.

            This field is a member of `oneof`_ ``_rule_tuple_count``.
        target_resources (MutableSequence[str]):
            A list of network resource URLs to which this rule applies.
            This field allows you to control which network's VMs get
            this rule. If this field is left blank, all VMs within the
            organization will receive the rule. This field may only be
            specified when versioned_expr is set to FIREWALL.
        target_service_accounts (MutableSequence[str]):
            A list of service accounts indicating the
            sets of instances that are applied with this
            rule.
    """

    class Direction(proto.Enum):
        r"""The direction in which this rule applies. This field may only be
        specified when versioned_expr is set to FIREWALL.

        Values:
            UNDEFINED_DIRECTION (0):
                A value indicating that the enum field is not
                set.
            EGRESS (432880501):
                No description available.
            INGRESS (516931221):
                No description available.
        """
        UNDEFINED_DIRECTION = 0
        EGRESS = 432880501
        INGRESS = 516931221

    action: str = proto.Field(
        proto.STRING,
        number=187661878,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    direction: str = proto.Field(
        proto.STRING,
        number=111150975,
        optional=True,
    )
    enable_logging: bool = proto.Field(
        proto.BOOL,
        number=295396515,
        optional=True,
    )
    header_action: "SecurityPolicyRuleHttpHeaderAction" = proto.Field(
        proto.MESSAGE,
        number=328077352,
        optional=True,
        message="SecurityPolicyRuleHttpHeaderAction",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    match: "SecurityPolicyRuleMatcher" = proto.Field(
        proto.MESSAGE,
        number=103668165,
        optional=True,
        message="SecurityPolicyRuleMatcher",
    )
    network_match: "SecurityPolicyRuleNetworkMatcher" = proto.Field(
        proto.MESSAGE,
        number=463387764,
        optional=True,
        message="SecurityPolicyRuleNetworkMatcher",
    )
    preconfigured_waf_config: "SecurityPolicyRulePreconfiguredWafConfig" = proto.Field(
        proto.MESSAGE,
        number=117805027,
        optional=True,
        message="SecurityPolicyRulePreconfiguredWafConfig",
    )
    preview: bool = proto.Field(
        proto.BOOL,
        number=218686408,
        optional=True,
    )
    priority: int = proto.Field(
        proto.INT32,
        number=445151652,
        optional=True,
    )
    rate_limit_options: "SecurityPolicyRuleRateLimitOptions" = proto.Field(
        proto.MESSAGE,
        number=67544315,
        optional=True,
        message="SecurityPolicyRuleRateLimitOptions",
    )
    redirect_options: "SecurityPolicyRuleRedirectOptions" = proto.Field(
        proto.MESSAGE,
        number=163285307,
        optional=True,
        message="SecurityPolicyRuleRedirectOptions",
    )
    rule_number: int = proto.Field(
        proto.INT64,
        number=535211500,
        optional=True,
    )
    rule_tuple_count: int = proto.Field(
        proto.INT32,
        number=388342037,
        optional=True,
    )
    target_resources: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=528230647,
    )
    target_service_accounts: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=457639710,
    )


class SecurityPolicyRuleHttpHeaderAction(proto.Message):
    r"""

    Attributes:
        request_headers_to_adds (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRuleHttpHeaderActionHttpHeaderOption]):
            The list of request headers to add or
            overwrite if they're already present.
    """

    request_headers_to_adds: MutableSequence[
        "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=87987661,
        message="SecurityPolicyRuleHttpHeaderActionHttpHeaderOption",
    )


class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        header_name (str):
            The name of the header to set.

            This field is a member of `oneof`_ ``_header_name``.
        header_value (str):
            The value to set the named header to.

            This field is a member of `oneof`_ ``_header_value``.
    """

    header_name: str = proto.Field(
        proto.STRING,
        number=110223613,
        optional=True,
    )
    header_value: str = proto.Field(
        proto.STRING,
        number=203094335,
        optional=True,
    )


class SecurityPolicyRuleMatcher(proto.Message):
    r"""Represents a match condition that incoming traffic is
    evaluated against. Exactly one field must be specified.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        config (google.cloud.compute_v1beta.types.SecurityPolicyRuleMatcherConfig):
            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.

            This field is a member of `oneof`_ ``_config``.
        expr (google.cloud.compute_v1beta.types.Expr):
            User defined CEVAL expression. A CEVAL expression is used to
            specify match criteria such as origin.ip, source.region_code
            and contents in the request header. Expressions containing
            ``evaluateThreatIntelligence`` require Cloud Armor Managed
            Protection Plus tier and are not supported in Edge Policies
            nor in Regional Policies. Expressions containing
            ``evaluatePreconfiguredExpr('sourceiplist-*')`` require
            Cloud Armor Managed Protection Plus tier and are only
            supported in Global Security Policies.

            This field is a member of `oneof`_ ``_expr``.
        expr_options (google.cloud.compute_v1beta.types.SecurityPolicyRuleMatcherExprOptions):
            The configuration options available when
            specifying a user defined CEVAL expression
            (i.e., 'expr').

            This field is a member of `oneof`_ ``_expr_options``.
        versioned_expr (str):
            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. Check the VersionedExpr enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_versioned_expr``.
    """

    class VersionedExpr(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_VERSIONED_EXPR (0):
                A value indicating that the enum field is not
                set.
            FIREWALL (219901184):
                No description available.
            SRC_IPS_V1 (70925961):
                Matches the source IP address of a request to
                the IP ranges supplied in config.
        """
        UNDEFINED_VERSIONED_EXPR = 0
        FIREWALL = 219901184
        SRC_IPS_V1 = 70925961

    config: "SecurityPolicyRuleMatcherConfig" = proto.Field(
        proto.MESSAGE,
        number=255820610,
        optional=True,
        message="SecurityPolicyRuleMatcherConfig",
    )
    expr: "Expr" = proto.Field(
        proto.MESSAGE,
        number=3127797,
        optional=True,
        message="Expr",
    )
    expr_options: "SecurityPolicyRuleMatcherExprOptions" = proto.Field(
        proto.MESSAGE,
        number=486220372,
        optional=True,
        message="SecurityPolicyRuleMatcherExprOptions",
    )
    versioned_expr: str = proto.Field(
        proto.STRING,
        number=322286013,
        optional=True,
    )


class SecurityPolicyRuleMatcherConfig(proto.Message):
    r"""

    Attributes:
        dest_ip_ranges (MutableSequence[str]):
            CIDR IP address range. This field may only be specified when
            versioned_expr is set to FIREWALL.
        layer4_configs (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRuleMatcherConfigLayer4Config]):
            Pairs of IP protocols and ports that the rule should match.
            This field may only be specified when versioned_expr is set
            to FIREWALL.
        src_ip_ranges (MutableSequence[str]):
            CIDR IP address range. Maximum number of src_ip_ranges
            allowed is 10.
    """

    dest_ip_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337357713,
    )
    layer4_configs: MutableSequence[
        "SecurityPolicyRuleMatcherConfigLayer4Config"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=373534261,
        message="SecurityPolicyRuleMatcherConfigLayer4Config",
    )
    src_ip_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=432128083,
    )


class SecurityPolicyRuleMatcherConfigLayer4Config(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_protocol (str):
            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.

            This field is a member of `oneof`_ ``_ip_protocol``.
        ports (MutableSequence[str]):
            An optional list of ports to which this rule applies. This
            field is only applicable for UDP or TCP protocol. Each entry
            must be either an integer or a range. If not specified, this
            rule applies to connections through any port. Example inputs
            include: ["22"], ["80","443"], and ["12345-12349"]. This
            field may only be specified when versioned_expr is set to
            FIREWALL.
    """

    ip_protocol: str = proto.Field(
        proto.STRING,
        number=475958960,
        optional=True,
    )
    ports: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=106854418,
    )


class SecurityPolicyRuleMatcherExprOptions(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        recaptcha_options (google.cloud.compute_v1beta.types.SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions):
            reCAPTCHA configuration options to be applied
            for the rule. If the rule does not evaluate
            reCAPTCHA tokens, this field has no effect.

            This field is a member of `oneof`_ ``_recaptcha_options``.
    """

    recaptcha_options: "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions" = (
        proto.Field(
            proto.MESSAGE,
            number=389151558,
            optional=True,
            message="SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions",
        )
    )


class SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions(proto.Message):
    r"""

    Attributes:
        action_token_site_keys (MutableSequence[str]):
            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.
        session_token_site_keys (MutableSequence[str]):
            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.
    """

    action_token_site_keys: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=59929885,
    )
    session_token_site_keys: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=333363581,
    )


class SecurityPolicyRuleNetworkMatcher(proto.Message):
    r"""Represents a match condition that incoming network traffic is
    evaluated against.

    Attributes:
        dest_ip_ranges (MutableSequence[str]):
            Destination IPv4/IPv6 addresses or CIDR
            prefixes, in standard text format.
        dest_ports (MutableSequence[str]):
            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").
        ip_protocols (MutableSequence[str]):
            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".
        src_asns (MutableSequence[int]):
            BGP Autonomous System Number associated with
            the source IP address.
        src_ip_ranges (MutableSequence[str]):
            Source IPv4/IPv6 addresses or CIDR prefixes,
            in standard text format.
        src_ports (MutableSequence[str]):
            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").
        src_region_codes (MutableSequence[str]):
            Two-letter ISO 3166-1 alpha-2 country code
            associated with the source IP address.
        user_defined_fields (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch]):
            User-defined fields. Each element names a
            defined field and lists the matching values for
            that field.
    """

    dest_ip_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337357713,
    )
    dest_ports: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=379902005,
    )
    ip_protocols: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=259213251,
    )
    src_asns: MutableSequence[int] = proto.RepeatedField(
        proto.UINT32,
        number=117825266,
    )
    src_ip_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=432128083,
    )
    src_ports: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=445095415,
    )
    src_region_codes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=99086742,
    )
    user_defined_fields: MutableSequence[
        "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=28312739,
        message="SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch",
    )


class SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of the user-defined field, as given in
            the definition.

            This field is a member of `oneof`_ ``_name``.
        values (MutableSequence[str]):
            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").
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    values: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=249928994,
    )


class SecurityPolicyRulePreconfiguredWafConfig(proto.Message):
    r"""

    Attributes:
        exclusions (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRulePreconfiguredWafConfigExclusion]):
            A list of exclusions to apply during
            preconfigured WAF evaluation.
    """

    exclusions: MutableSequence[
        "SecurityPolicyRulePreconfiguredWafConfigExclusion"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=208665701,
        message="SecurityPolicyRulePreconfiguredWafConfigExclusion",
    )


class SecurityPolicyRulePreconfiguredWafConfigExclusion(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        request_cookies_to_exclude (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams]):
            A list of request cookie names whose value
            will be excluded from inspection during
            preconfigured WAF evaluation.
        request_headers_to_exclude (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams]):
            A list of request header names whose value
            will be excluded from inspection during
            preconfigured WAF evaluation.
        request_query_params_to_exclude (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams]):
            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.
        request_uris_to_exclude (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams]):
            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.
        target_rule_ids (MutableSequence[str]):
            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.
        target_rule_set (str):
            Target WAF rule set to apply the
            preconfigured WAF exclusion.

            This field is a member of `oneof`_ ``_target_rule_set``.
    """

    request_cookies_to_exclude: MutableSequence[
        "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=156757878,
        message="SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams",
    )
    request_headers_to_exclude: MutableSequence[
        "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=63230495,
        message="SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams",
    )
    request_query_params_to_exclude: MutableSequence[
        "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=340692744,
        message="SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams",
    )
    request_uris_to_exclude: MutableSequence[
        "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=90690846,
        message="SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams",
    )
    target_rule_ids: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=498430435,
    )
    target_rule_set: str = proto.Field(
        proto.STRING,
        number=498440077,
        optional=True,
    )


class SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        op (str):
            The match operator for the field.
            Check the Op enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_op``.
        val (str):
            The value of the field.

            This field is a member of `oneof`_ ``_val``.
    """

    class Op(proto.Enum):
        r"""The match operator for the field.

        Values:
            UNDEFINED_OP (0):
                A value indicating that the enum field is not
                set.
            CONTAINS (215180831):
                The operator matches if the field value
                contains the specified value.
            ENDS_WITH (490402221):
                The operator matches if the field value ends
                with the specified value.
            EQUALS (442201023):
                The operator matches if the field value
                equals the specified value.
            EQUALS_ANY (337226060):
                The operator matches if the field value is
                any value.
            STARTS_WITH (139505652):
                The operator matches if the field value
                starts with the specified value.
        """
        UNDEFINED_OP = 0
        CONTAINS = 215180831
        ENDS_WITH = 490402221
        EQUALS = 442201023
        EQUALS_ANY = 337226060
        STARTS_WITH = 139505652

    op: str = proto.Field(
        proto.STRING,
        number=3553,
        optional=True,
    )
    val: str = proto.Field(
        proto.STRING,
        number=116513,
        optional=True,
    )


class SecurityPolicyRuleRateLimitOptions(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ban_duration_sec (int):
            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.

            This field is a member of `oneof`_ ``_ban_duration_sec``.
        ban_threshold (google.cloud.compute_v1beta.types.SecurityPolicyRuleRateLimitOptionsThreshold):
            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'.

            This field is a member of `oneof`_ ``_ban_threshold``.
        conform_action (str):
            Action to take for requests that are under
            the configured rate limit threshold. Valid
            option is "allow" only.

            This field is a member of `oneof`_ ``_conform_action``.
        enforce_on_key (str):
            Determines the key to enforce the rate_limit_threshold on.
            Possible values are: - ALL: A single rate limit threshold is
            applied to all the requests matching this rule. This is the
            default value if "enforceOnKey" is not configured. - IP: The
            source IP address of the request is the key. Each IP has
            this limit enforced separately. - HTTP_HEADER: The value of
            the HTTP header whose name is configured under
            "enforceOnKeyName". The key value is truncated to the first
            128 bytes of the header value. If no such header is present
            in the request, the key type defaults to ALL. - XFF_IP: The
            first IP address (i.e. the originating client IP address)
            specified in the list of IPs under X-Forwarded-For HTTP
            header. If no such header is present or the value is not a
            valid IP, the key defaults to the source IP address of the
            request i.e. key type IP. - HTTP_COOKIE: The value of the
            HTTP cookie whose name is configured under
            "enforceOnKeyName". The key value is truncated to the first
            128 bytes of the cookie value. If no such cookie is present
            in the request, the key type defaults to ALL. - HTTP_PATH:
            The URL path of the HTTP request. The key value is truncated
            to the first 128 bytes. - SNI: Server name indication in the
            TLS session of the HTTPS request. The key value is truncated
            to the first 128 bytes. The key type defaults to ALL on a
            HTTP session. - REGION_CODE: The country/region from which
            the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL
            fingerprint if the client connects using HTTPS, HTTP/2 or
            HTTP/3. If not available, the key type defaults to ALL. -
            USER_IP: The IP address of the originating client, which is
            resolved based on "userIpRequestHeaders" configured with the
            security policy. If there is no "userIpRequestHeaders"
            configuration or an IP address cannot be resolved from it,
            the key type defaults to IP. - 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. Check the EnforceOnKey enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_enforce_on_key``.
        enforce_on_key_configs (MutableSequence[google.cloud.compute_v1beta.types.SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig]):
            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.
        enforce_on_key_name (str):
            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.

            This field is a member of `oneof`_ ``_enforce_on_key_name``.
        exceed_action (str):
            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.

            This field is a member of `oneof`_ ``_exceed_action``.
        exceed_redirect_options (google.cloud.compute_v1beta.types.SecurityPolicyRuleRedirectOptions):
            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.

            This field is a member of `oneof`_ ``_exceed_redirect_options``.
        rate_limit_threshold (google.cloud.compute_v1beta.types.SecurityPolicyRuleRateLimitOptionsThreshold):
            Threshold at which to begin ratelimiting.

            This field is a member of `oneof`_ ``_rate_limit_threshold``.
    """

    class EnforceOnKey(proto.Enum):
        r"""Determines the key to enforce the rate_limit_threshold on. Possible
        values are: - ALL: A single rate limit threshold is applied to all
        the requests matching this rule. This is the default value if
        "enforceOnKey" is not configured. - IP: The source IP address of the
        request is the key. Each IP has this limit enforced separately. -
        HTTP_HEADER: The value of the HTTP header whose name is configured
        under "enforceOnKeyName". The key value is truncated to the first
        128 bytes of the header value. If no such header is present in the
        request, the key type defaults to ALL. - XFF_IP: The first IP
        address (i.e. the originating client IP address) specified in the
        list of IPs under X-Forwarded-For HTTP header. If no such header is
        present or the value is not a valid IP, the key defaults to the
        source IP address of the request i.e. key type IP. - HTTP_COOKIE:
        The value of the HTTP cookie whose name is configured under
        "enforceOnKeyName". The key value is truncated to the first 128
        bytes of the cookie value. If no such cookie is present in the
        request, the key type defaults to ALL. - HTTP_PATH: The URL path of
        the HTTP request. The key value is truncated to the first 128 bytes.
        - SNI: Server name indication in the TLS session of the HTTPS
        request. The key value is truncated to the first 128 bytes. The key
        type defaults to ALL on a HTTP session. - REGION_CODE: The
        country/region from which the request originates. -
        TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects
        using HTTPS, HTTP/2 or HTTP/3. If not available, the key type
        defaults to ALL. - USER_IP: The IP address of the originating
        client, which is resolved based on "userIpRequestHeaders" configured
        with the security policy. If there is no "userIpRequestHeaders"
        configuration or an IP address cannot be resolved from it, the key
        type defaults to IP. - 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.

        Values:
            UNDEFINED_ENFORCE_ON_KEY (0):
                A value indicating that the enum field is not
                set.
            ALL (64897):
                No description available.
            ALL_IPS (343973966):
                No description available.
            HTTP_COOKIE (494981627):
                No description available.
            HTTP_HEADER (91597348):
                No description available.
            HTTP_PATH (311503228):
                No description available.
            IP (2343):
                No description available.
            REGION_CODE (79559768):
                No description available.
            SNI (82254):
                No description available.
            TLS_JA3_FINGERPRINT (327127933):
                No description available.
            TLS_JA4_FINGERPRINT (33724926):
                No description available.
            USER_IP (34009627):
                No description available.
            XFF_IP (438707118):
                No description available.
        """
        UNDEFINED_ENFORCE_ON_KEY = 0
        ALL = 64897
        ALL_IPS = 343973966
        HTTP_COOKIE = 494981627
        HTTP_HEADER = 91597348
        HTTP_PATH = 311503228
        IP = 2343
        REGION_CODE = 79559768
        SNI = 82254
        TLS_JA3_FINGERPRINT = 327127933
        TLS_JA4_FINGERPRINT = 33724926
        USER_IP = 34009627
        XFF_IP = 438707118

    ban_duration_sec: int = proto.Field(
        proto.INT32,
        number=42896726,
        optional=True,
    )
    ban_threshold: "SecurityPolicyRuleRateLimitOptionsThreshold" = proto.Field(
        proto.MESSAGE,
        number=501208123,
        optional=True,
        message="SecurityPolicyRuleRateLimitOptionsThreshold",
    )
    conform_action: str = proto.Field(
        proto.STRING,
        number=517612367,
        optional=True,
    )
    enforce_on_key: str = proto.Field(
        proto.STRING,
        number=416648956,
        optional=True,
    )
    enforce_on_key_configs: MutableSequence[
        "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=33906478,
        message="SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig",
    )
    enforce_on_key_name: str = proto.Field(
        proto.STRING,
        number=132555246,
        optional=True,
    )
    exceed_action: str = proto.Field(
        proto.STRING,
        number=167159073,
        optional=True,
    )
    exceed_redirect_options: "SecurityPolicyRuleRedirectOptions" = proto.Field(
        proto.MESSAGE,
        number=473646694,
        optional=True,
        message="SecurityPolicyRuleRedirectOptions",
    )
    rate_limit_threshold: "SecurityPolicyRuleRateLimitOptionsThreshold" = proto.Field(
        proto.MESSAGE,
        number=315875208,
        optional=True,
        message="SecurityPolicyRuleRateLimitOptionsThreshold",
    )


class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enforce_on_key_name (str):
            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.

            This field is a member of `oneof`_ ``_enforce_on_key_name``.
        enforce_on_key_type (str):
            Determines the key to enforce the rate_limit_threshold on.
            Possible values are: - ALL: A single rate limit threshold is
            applied to all the requests matching this rule. This is the
            default value if "enforceOnKeyConfigs" is not configured. -
            IP: The source IP address of the request is the key. Each IP
            has this limit enforced separately. - HTTP_HEADER: The value
            of the HTTP header whose name is configured under
            "enforceOnKeyName". The key value is truncated to the first
            128 bytes of the header value. If no such header is present
            in the request, the key type defaults to ALL. - XFF_IP: The
            first IP address (i.e. the originating client IP address)
            specified in the list of IPs under X-Forwarded-For HTTP
            header. If no such header is present or the value is not a
            valid IP, the key defaults to the source IP address of the
            request i.e. key type IP. - HTTP_COOKIE: The value of the
            HTTP cookie whose name is configured under
            "enforceOnKeyName". The key value is truncated to the first
            128 bytes of the cookie value. If no such cookie is present
            in the request, the key type defaults to ALL. - HTTP_PATH:
            The URL path of the HTTP request. The key value is truncated
            to the first 128 bytes. - SNI: Server name indication in the
            TLS session of the HTTPS request. The key value is truncated
            to the first 128 bytes. The key type defaults to ALL on a
            HTTP session. - REGION_CODE: The country/region from which
            the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL
            fingerprint if the client connects using HTTPS, HTTP/2 or
            HTTP/3. If not available, the key type defaults to ALL. -
            USER_IP: The IP address of the originating client, which is
            resolved based on "userIpRequestHeaders" configured with the
            security policy. If there is no "userIpRequestHeaders"
            configuration or an IP address cannot be resolved from it,
            the key type defaults to IP. - 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. Check the EnforceOnKeyType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_enforce_on_key_type``.
    """

    class EnforceOnKeyType(proto.Enum):
        r"""Determines the key to enforce the rate_limit_threshold on. Possible
        values are: - ALL: A single rate limit threshold is applied to all
        the requests matching this rule. This is the default value if
        "enforceOnKeyConfigs" is not configured. - IP: The source IP address
        of the request is the key. Each IP has this limit enforced
        separately. - HTTP_HEADER: The value of the HTTP header whose name
        is configured under "enforceOnKeyName". The key value is truncated
        to the first 128 bytes of the header value. If no such header is
        present in the request, the key type defaults to ALL. - XFF_IP: The
        first IP address (i.e. the originating client IP address) specified
        in the list of IPs under X-Forwarded-For HTTP header. If no such
        header is present or the value is not a valid IP, the key defaults
        to the source IP address of the request i.e. key type IP. -
        HTTP_COOKIE: The value of the HTTP cookie whose name is configured
        under "enforceOnKeyName". The key value is truncated to the first
        128 bytes of the cookie value. If no such cookie is present in the
        request, the key type defaults to ALL. - HTTP_PATH: The URL path of
        the HTTP request. The key value is truncated to the first 128 bytes.
        - SNI: Server name indication in the TLS session of the HTTPS
        request. The key value is truncated to the first 128 bytes. The key
        type defaults to ALL on a HTTP session. - REGION_CODE: The
        country/region from which the request originates. -
        TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects
        using HTTPS, HTTP/2 or HTTP/3. If not available, the key type
        defaults to ALL. - USER_IP: The IP address of the originating
        client, which is resolved based on "userIpRequestHeaders" configured
        with the security policy. If there is no "userIpRequestHeaders"
        configuration or an IP address cannot be resolved from it, the key
        type defaults to IP. - 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.

        Values:
            UNDEFINED_ENFORCE_ON_KEY_TYPE (0):
                A value indicating that the enum field is not
                set.
            ALL (64897):
                No description available.
            ALL_IPS (343973966):
                No description available.
            HTTP_COOKIE (494981627):
                No description available.
            HTTP_HEADER (91597348):
                No description available.
            HTTP_PATH (311503228):
                No description available.
            IP (2343):
                No description available.
            REGION_CODE (79559768):
                No description available.
            SNI (82254):
                No description available.
            TLS_JA3_FINGERPRINT (327127933):
                No description available.
            TLS_JA4_FINGERPRINT (33724926):
                No description available.
            USER_IP (34009627):
                No description available.
            XFF_IP (438707118):
                No description available.
        """
        UNDEFINED_ENFORCE_ON_KEY_TYPE = 0
        ALL = 64897
        ALL_IPS = 343973966
        HTTP_COOKIE = 494981627
        HTTP_HEADER = 91597348
        HTTP_PATH = 311503228
        IP = 2343
        REGION_CODE = 79559768
        SNI = 82254
        TLS_JA3_FINGERPRINT = 327127933
        TLS_JA4_FINGERPRINT = 33724926
        USER_IP = 34009627
        XFF_IP = 438707118

    enforce_on_key_name: str = proto.Field(
        proto.STRING,
        number=132555246,
        optional=True,
    )
    enforce_on_key_type: str = proto.Field(
        proto.STRING,
        number=132757149,
        optional=True,
    )


class SecurityPolicyRuleRateLimitOptionsThreshold(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        count (int):
            Number of HTTP(S) requests for calculating
            the threshold.

            This field is a member of `oneof`_ ``_count``.
        interval_sec (int):
            Interval over which the threshold is
            computed.

            This field is a member of `oneof`_ ``_interval_sec``.
    """

    count: int = proto.Field(
        proto.INT32,
        number=94851343,
        optional=True,
    )
    interval_sec: int = proto.Field(
        proto.INT32,
        number=41084375,
        optional=True,
    )


class SecurityPolicyRuleRedirectOptions(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target (str):
            Target for the redirect action. This is required if the type
            is EXTERNAL_302 and cannot be specified for
            GOOGLE_RECAPTCHA.

            This field is a member of `oneof`_ ``_target``.
        type_ (str):
            Type of the redirect action.
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""Type of the redirect action.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL_302 (395733761):
                No description available.
            GOOGLE_RECAPTCHA (518803009):
                No description available.
        """
        UNDEFINED_TYPE = 0
        EXTERNAL_302 = 395733761
        GOOGLE_RECAPTCHA = 518803009

    target: str = proto.Field(
        proto.STRING,
        number=192835985,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class SecurityPolicyUserDefinedField(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        base (str):
            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 Check the Base enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_base``.
        mask (str):
            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.

            This field is a member of `oneof`_ ``_mask``.
        name (str):
            The name of this field. Must be unique within
            the policy.

            This field is a member of `oneof`_ ``_name``.
        offset (int):
            Offset of the first byte of the field (in
            network byte order) relative to 'base'.

            This field is a member of `oneof`_ ``_offset``.
        size (int):
            Size of the field in bytes. Valid values:
            1-4.

            This field is a member of `oneof`_ ``_size``.
    """

    class Base(proto.Enum):
        r"""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

        Values:
            UNDEFINED_BASE (0):
                A value indicating that the enum field is not
                set.
            IPV4 (2254341):
                No description available.
            IPV6 (2254343):
                No description available.
            TCP (82881):
                No description available.
            UDP (83873):
                No description available.
        """
        UNDEFINED_BASE = 0
        IPV4 = 2254341
        IPV6 = 2254343
        TCP = 82881
        UDP = 83873

    base: str = proto.Field(
        proto.STRING,
        number=3016401,
        optional=True,
    )
    mask: str = proto.Field(
        proto.STRING,
        number=3344108,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    offset: int = proto.Field(
        proto.INT32,
        number=53961875,
        optional=True,
    )
    size: int = proto.Field(
        proto.INT32,
        number=3530753,
        optional=True,
    )


class SecuritySettings(proto.Message):
    r"""The authentication and authorization settings for a
    BackendService.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        authentication (str):
            [Deprecated] Use clientTlsPolicy instead.

            This field is a member of `oneof`_ ``_authentication``.
        aws_v4_authentication (google.cloud.compute_v1beta.types.AWSV4Signature):
            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.

            This field is a member of `oneof`_ ``_aws_v4_authentication``.
        client_tls_policy (str):
            Optional. A URL referring to a
            networksecurity.ClientTlsPolicy resource that describes how
            clients should authenticate with this service's backends.
            clientTlsPolicy only applies to a global BackendService with
            the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If
            left blank, communications are not encrypted.

            This field is a member of `oneof`_ ``_client_tls_policy``.
        subject_alt_names (MutableSequence[str]):
            Optional. A list of Subject Alternative Names (SANs) that
            the client verifies during a mutual TLS handshake with an
            server/endpoint for this BackendService. When the server
            presents its X.509 certificate to the client, the client
            inspects the certificate's subjectAltName field. If the
            field contains one of the specified values, the
            communication continues. Otherwise, it fails. This
            additional check enables the client to verify that the
            server is authorized to run the requested service. Note that
            the contents of the server certificate's subjectAltName
            field are configured by the Public Key Infrastructure which
            provisions server identities. Only applies to a global
            BackendService with loadBalancingScheme set to
            INTERNAL_SELF_MANAGED. Only applies when BackendService has
            an attached clientTlsPolicy with clientCertificate (mTLS
            mode).
    """

    authentication: str = proto.Field(
        proto.STRING,
        number=430432888,
        optional=True,
    )
    aws_v4_authentication: "AWSV4Signature" = proto.Field(
        proto.MESSAGE,
        number=433993111,
        optional=True,
        message="AWSV4Signature",
    )
    client_tls_policy: str = proto.Field(
        proto.STRING,
        number=462325226,
        optional=True,
    )
    subject_alt_names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=330029535,
    )


class SendDiagnosticInterruptInstanceRequest(proto.Message):
    r"""A request message for Instances.SendDiagnosticInterrupt. See
    the method description for details.

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SendDiagnosticInterruptInstanceResponse(proto.Message):
    r"""A response message for Instances.SendDiagnosticInterrupt. See
    the method description for details.

    """


class SerialPortOutput(proto.Message):
    r"""An instance serial console output.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        contents (str):
            [Output Only] The contents of the console output.

            This field is a member of `oneof`_ ``_contents``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#serialPortOutput for serial port output.

            This field is a member of `oneof`_ ``_kind``.
        next_ (int):
            [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.

            This field is a member of `oneof`_ ``_next``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        start (int):
            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.

            This field is a member of `oneof`_ ``_start``.
    """

    contents: str = proto.Field(
        proto.STRING,
        number=506419994,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_: int = proto.Field(
        proto.INT64,
        number=3377907,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    start: int = proto.Field(
        proto.INT64,
        number=109757538,
        optional=True,
    )


class ServerBinding(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        type_ (str):
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            RESTART_NODE_ON_ANY_SERVER (502950985):
                Node may associate with any physical server
                over its lifetime.
            RESTART_NODE_ON_MINIMAL_SERVERS (204166495):
                Node may associate with minimal physical
                servers over its lifetime.
            SERVER_BINDING_TYPE_UNSPECIFIED (180825512):
                No description available.
        """
        UNDEFINED_TYPE = 0
        RESTART_NODE_ON_ANY_SERVER = 502950985
        RESTART_NODE_ON_MINIMAL_SERVERS = 204166495
        SERVER_BINDING_TYPE_UNSPECIFIED = 180825512

    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class ServiceAccount(proto.Message):
    r"""A service account.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        email (str):
            Email address of the service account.

            This field is a member of `oneof`_ ``_email``.
        scopes (MutableSequence[str]):
            The list of scopes to be made available for
            this service account.
    """

    email: str = proto.Field(
        proto.STRING,
        number=96619420,
        optional=True,
    )
    scopes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=165973151,
    )


class ServiceAttachment(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        connected_endpoints (MutableSequence[google.cloud.compute_v1beta.types.ServiceAttachmentConnectedEndpoint]):
            [Output Only] An array of connections for all the consumers
            connected to this service attachment.
        connection_preference (str):
            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. Check the ConnectionPreference
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_connection_preference``.
        consumer_accept_lists (MutableSequence[google.cloud.compute_v1beta.types.ServiceAttachmentConsumerProjectLimit]):
            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.
        consumer_reject_lists (MutableSequence[str]):
            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.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        domain_names (MutableSequence[str]):
            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.
        enable_proxy_protocol (bool):
            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.

            This field is a member of `oneof`_ ``_enable_proxy_protocol``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#serviceAttachment for service attachments.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        nat_subnets (MutableSequence[str]):
            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.
        producer_forwarding_rule (str):
            The URL of a forwarding rule with loadBalancingScheme
            INTERNAL\* that is serving the endpoint identified by this
            service attachment.

            This field is a member of `oneof`_ ``_producer_forwarding_rule``.
        propagated_connection_limit (int):
            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.

            This field is a member of `oneof`_ ``_propagated_connection_limit``.
        psc_service_attachment_id (google.cloud.compute_v1beta.types.Uint128):
            [Output Only] An 128-bit global unique ID of the PSC service
            attachment.

            This field is a member of `oneof`_ ``_psc_service_attachment_id``.
        reconcile_connections (bool):
            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.

            This field is a member of `oneof`_ ``_reconcile_connections``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        target_service (str):
            The URL of a service serving the endpoint
            identified by this service attachment.

            This field is a member of `oneof`_ ``_target_service``.
        tunneling_config (google.cloud.compute_v1beta.types.ServiceAttachmentTunnelingConfig):
            When a tunneling config is set on this service attachment it
            will encapsulate traffic between consumer and producer. When
            tunneling is enabled: - nat_subnets must be unset -
            enable_proxy_protocol must be false -
            producer_forwarding_rule must be a L4 ILB. -

            This field is a member of `oneof`_ ``_tunneling_config``.
    """

    class ConnectionPreference(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_CONNECTION_PREFERENCE (0):
                A value indicating that the enum field is not
                set.
            ACCEPT_AUTOMATIC (75250580):
                No description available.
            ACCEPT_MANUAL (373061341):
                No description available.
            CONNECTION_PREFERENCE_UNSPECIFIED (34590772):
                No description available.
        """
        UNDEFINED_CONNECTION_PREFERENCE = 0
        ACCEPT_AUTOMATIC = 75250580
        ACCEPT_MANUAL = 373061341
        CONNECTION_PREFERENCE_UNSPECIFIED = 34590772

    connected_endpoints: MutableSequence[
        "ServiceAttachmentConnectedEndpoint"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=72223688,
        message="ServiceAttachmentConnectedEndpoint",
    )
    connection_preference: str = proto.Field(
        proto.STRING,
        number=285818076,
        optional=True,
    )
    consumer_accept_lists: MutableSequence[
        "ServiceAttachmentConsumerProjectLimit"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=402725703,
        message="ServiceAttachmentConsumerProjectLimit",
    )
    consumer_reject_lists: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=204033182,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    domain_names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=6450189,
    )
    enable_proxy_protocol: bool = proto.Field(
        proto.BOOL,
        number=363791237,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    nat_subnets: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=374785944,
    )
    producer_forwarding_rule: str = proto.Field(
        proto.STRING,
        number=247927889,
        optional=True,
    )
    propagated_connection_limit: int = proto.Field(
        proto.UINT32,
        number=332719230,
        optional=True,
    )
    psc_service_attachment_id: "Uint128" = proto.Field(
        proto.MESSAGE,
        number=527695214,
        optional=True,
        message="Uint128",
    )
    reconcile_connections: bool = proto.Field(
        proto.BOOL,
        number=125493732,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    target_service: str = proto.Field(
        proto.STRING,
        number=1293831,
        optional=True,
    )
    tunneling_config: "ServiceAttachmentTunnelingConfig" = proto.Field(
        proto.MESSAGE,
        number=240833703,
        optional=True,
        message="ServiceAttachmentTunnelingConfig",
    )


class ServiceAttachmentAggregatedList(proto.Message):
    r"""Contains a list of ServiceAttachmentsScopedList.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.ServiceAttachmentsScopedList]):
            A list of ServiceAttachmentsScopedList
            resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "ServiceAttachmentsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="ServiceAttachmentsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ServiceAttachmentConnectedEndpoint(proto.Message):
    r"""[Output Only] A connection connected to this service attachment.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        consumer_network (str):
            The url of the consumer network.

            This field is a member of `oneof`_ ``_consumer_network``.
        endpoint (str):
            The url of a connected endpoint.

            This field is a member of `oneof`_ ``_endpoint``.
        propagated_connection_count (int):
            The number of consumer Network Connectivity
            Center spokes that the connected Private Service
            Connect endpoint has propagated to.

            This field is a member of `oneof`_ ``_propagated_connection_count``.
        psc_connection_id (int):
            The PSC connection id of the connected
            endpoint.

            This field is a member of `oneof`_ ``_psc_connection_id``.
        status (str):
            The status of a connected endpoint to this
            service attachment. Check the Status enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class Status(proto.Enum):
        r"""The status of a connected endpoint to this service
        attachment.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACCEPTED (246714279):
                The connection has been accepted by the
                producer.
            CLOSED (380163436):
                The connection has been closed by the
                producer.
            NEEDS_ATTENTION (344491452):
                The connection has been accepted by the
                producer, but the producer needs to take further
                action before the forwarding rule can serve
                traffic.
            PENDING (35394935):
                The connection is pending acceptance by the
                producer.
            REJECTED (174130302):
                The consumer is still connected but not using
                the connection.
            STATUS_UNSPECIFIED (42133066):
                No description available.
        """
        UNDEFINED_STATUS = 0
        ACCEPTED = 246714279
        CLOSED = 380163436
        NEEDS_ATTENTION = 344491452
        PENDING = 35394935
        REJECTED = 174130302
        STATUS_UNSPECIFIED = 42133066

    consumer_network: str = proto.Field(
        proto.STRING,
        number=254357221,
        optional=True,
    )
    endpoint: str = proto.Field(
        proto.STRING,
        number=130489749,
        optional=True,
    )
    propagated_connection_count: int = proto.Field(
        proto.UINT32,
        number=324594130,
        optional=True,
    )
    psc_connection_id: int = proto.Field(
        proto.UINT64,
        number=292082397,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class ServiceAttachmentConsumerProjectLimit(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        connection_limit (int):
            The value of the limit to set.

            This field is a member of `oneof`_ ``_connection_limit``.
        network_url (str):
            The network URL for the network to set the
            limit for.

            This field is a member of `oneof`_ ``_network_url``.
        project_id_or_num (str):
            The project id or number for the project to
            set the limit for.

            This field is a member of `oneof`_ ``_project_id_or_num``.
    """

    connection_limit: int = proto.Field(
        proto.UINT32,
        number=131403546,
        optional=True,
    )
    network_url: str = proto.Field(
        proto.STRING,
        number=207194078,
        optional=True,
    )
    project_id_or_num: str = proto.Field(
        proto.STRING,
        number=349783336,
        optional=True,
    )


class ServiceAttachmentList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.ServiceAttachment]):
            A list of ServiceAttachment resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#serviceAttachment for service attachments.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["ServiceAttachment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="ServiceAttachment",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ServiceAttachmentTunnelingConfig(proto.Message):
    r"""Use to configure this PSC connection in tunneling mode. In
    tunneling mode traffic from consumer to producer will be
    encapsulated as it crosses the VPC boundary and traffic from
    producer to consumer will be decapsulated in the same manner.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        encapsulation_profile (str):
            Specify the encapsulation protocol and what
            metadata to include in incoming encapsulated
            packet headers. Check the EncapsulationProfile
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_encapsulation_profile``.
        routing_mode (str):
            How this Service Attachment will treat traffic sent to the
            tunnel_ip, destined for the consumer network. Check the
            RoutingMode enum for the list of possible values.

            This field is a member of `oneof`_ ``_routing_mode``.
    """

    class EncapsulationProfile(proto.Enum):
        r"""Specify the encapsulation protocol and what metadata to
        include in incoming encapsulated packet headers.

        Values:
            UNDEFINED_ENCAPSULATION_PROFILE (0):
                A value indicating that the enum field is not
                set.
            GENEVE_SECURITY_V1 (374039743):
                Use GENEVE encapsulation protocol and include the
                SECURITY_V1 set of GENEVE headers.
            UNSPECIFIED_ENCAPSULATION_PROFILE (368782710):
                No description available.
        """
        UNDEFINED_ENCAPSULATION_PROFILE = 0
        GENEVE_SECURITY_V1 = 374039743
        UNSPECIFIED_ENCAPSULATION_PROFILE = 368782710

    class RoutingMode(proto.Enum):
        r"""How this Service Attachment will treat traffic sent to the
        tunnel_ip, destined for the consumer network.

        Values:
            UNDEFINED_ROUTING_MODE (0):
                A value indicating that the enum field is not
                set.
            PACKET_INJECTION (321485248):
                Traffic sent to this service attachment will
                be reinjected into the consumer network.
            STANDARD_ROUTING (141399332):
                Response traffic, after de-encapsulation,
                will be returned to the client.
            UNSPECIFIED_ROUTING_MODE (126139844):
                No description available.
        """
        UNDEFINED_ROUTING_MODE = 0
        PACKET_INJECTION = 321485248
        STANDARD_ROUTING = 141399332
        UNSPECIFIED_ROUTING_MODE = 126139844

    encapsulation_profile: str = proto.Field(
        proto.STRING,
        number=118326494,
        optional=True,
    )
    routing_mode: str = proto.Field(
        proto.STRING,
        number=475143548,
        optional=True,
    )


class ServiceAttachmentsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        service_attachments (MutableSequence[google.cloud.compute_v1beta.types.ServiceAttachment]):
            A list of ServiceAttachments contained in
            this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of service attachments when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    service_attachments: MutableSequence["ServiceAttachment"] = proto.RepeatedField(
        proto.MESSAGE,
        number=307136806,
        message="ServiceAttachment",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SetAutoHealingPoliciesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.SetAutoHealingPolicies. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the instance group manager.
        instance_group_managers_set_auto_healing_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersSetAutoHealingRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_set_auto_healing_request_resource: "InstanceGroupManagersSetAutoHealingRequest" = proto.Field(
        proto.MESSAGE,
        number=345818727,
        message="InstanceGroupManagersSetAutoHealingRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetAutoHealingPoliciesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.SetAutoHealingPolicies. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_set_auto_healing_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersSetAutoHealingRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_set_auto_healing_request_resource: "RegionInstanceGroupManagersSetAutoHealingRequest" = proto.Field(
        proto.MESSAGE,
        number=143403228,
        message="RegionInstanceGroupManagersSetAutoHealingRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetBackendServiceTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.SetBackendService. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_ssl_proxies_set_backend_service_request_resource (google.cloud.compute_v1beta.types.TargetSslProxiesSetBackendServiceRequest):
            The body resource for this request
        target_ssl_proxy (str):
            Name of the TargetSslProxy resource whose
            BackendService resource is to be set.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_ssl_proxies_set_backend_service_request_resource: "TargetSslProxiesSetBackendServiceRequest" = proto.Field(
        proto.MESSAGE,
        number=139080868,
        message="TargetSslProxiesSetBackendServiceRequest",
    )
    target_ssl_proxy: str = proto.Field(
        proto.STRING,
        number=338795853,
    )


class SetBackendServiceTargetTcpProxyRequest(proto.Message):
    r"""A request message for TargetTcpProxies.SetBackendService. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_tcp_proxies_set_backend_service_request_resource (google.cloud.compute_v1beta.types.TargetTcpProxiesSetBackendServiceRequest):
            The body resource for this request
        target_tcp_proxy (str):
            Name of the TargetTcpProxy resource whose
            BackendService resource is to be set.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_tcp_proxies_set_backend_service_request_resource: "TargetTcpProxiesSetBackendServiceRequest" = proto.Field(
        proto.MESSAGE,
        number=273721583,
        message="TargetTcpProxiesSetBackendServiceRequest",
    )
    target_tcp_proxy: str = proto.Field(
        proto.STRING,
        number=503065442,
    )


class SetBackupTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.SetBackup. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        failover_ratio (float):
            New failoverRatio value for the target pool.

            This field is a member of `oneof`_ ``_failover_ratio``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_pool (str):
            Name of the TargetPool resource to set a
            backup pool for.
        target_reference_resource (google.cloud.compute_v1beta.types.TargetReference):
            The body resource for this request
    """

    failover_ratio: float = proto.Field(
        proto.FLOAT,
        number=212667006,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )
    target_reference_resource: "TargetReference" = proto.Field(
        proto.MESSAGE,
        number=523721712,
        message="TargetReference",
    )


class SetCertificateMapTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.SetCertificateMap.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxies_set_certificate_map_request_resource (google.cloud.compute_v1beta.types.TargetHttpsProxiesSetCertificateMapRequest):
            The body resource for this request
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource whose
            CertificateMap is to be set. The name must be
            1-63 characters long, and comply with RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxies_set_certificate_map_request_resource: "TargetHttpsProxiesSetCertificateMapRequest" = proto.Field(
        proto.MESSAGE,
        number=467639099,
        message="TargetHttpsProxiesSetCertificateMapRequest",
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class SetCertificateMapTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.SetCertificateMap. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_ssl_proxies_set_certificate_map_request_resource (google.cloud.compute_v1beta.types.TargetSslProxiesSetCertificateMapRequest):
            The body resource for this request
        target_ssl_proxy (str):
            Name of the TargetSslProxy resource whose
            CertificateMap is to be set. The name must be
            1-63 characters long, and comply with RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_ssl_proxies_set_certificate_map_request_resource: "TargetSslProxiesSetCertificateMapRequest" = proto.Field(
        proto.MESSAGE,
        number=343984954,
        message="TargetSslProxiesSetCertificateMapRequest",
    )
    target_ssl_proxy: str = proto.Field(
        proto.STRING,
        number=338795853,
    )


class SetCloudArmorTierProjectRequest(proto.Message):
    r"""A request message for Projects.SetCloudArmorTier. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        projects_set_cloud_armor_tier_request_resource (google.cloud.compute_v1beta.types.ProjectsSetCloudArmorTierRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    projects_set_cloud_armor_tier_request_resource: "ProjectsSetCloudArmorTierRequest" = proto.Field(
        proto.MESSAGE,
        number=77053391,
        message="ProjectsSetCloudArmorTierRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetCommonInstanceMetadataOperationMetadata(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        client_operation_id (str):
            [Output Only] The client operation id.

            This field is a member of `oneof`_ ``_client_operation_id``.
        per_location_operations (MutableMapping[str, google.cloud.compute_v1beta.types.SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo]):
            [Output Only] Status information per location (location name
            is key). Example key: zones/us-central1-a
    """

    client_operation_id: str = proto.Field(
        proto.STRING,
        number=297240295,
        optional=True,
    )
    per_location_operations: MutableMapping[
        str, "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=408987796,
        message="SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo",
    )


class SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        error (google.cloud.compute_v1beta.types.Status):
            [Output Only] If state is ``ABANDONED`` or ``FAILED``, this
            field is populated.

            This field is a member of `oneof`_ ``_error``.
        state (str):
            [Output Only] Status of the action, which can be one of the
            following: ``PROPAGATING``, ``PROPAGATED``, ``ABANDONED``,
            ``FAILED``, or ``DONE``. Check the State enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_state``.
    """

    class State(proto.Enum):
        r"""[Output Only] Status of the action, which can be one of the
        following: ``PROPAGATING``, ``PROPAGATED``, ``ABANDONED``,
        ``FAILED``, or ``DONE``.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            ABANDONED (81797556):
                Operation not tracked in this location e.g.
                zone is marked as DOWN.
            DONE (2104194):
                Operation has completed successfully.
            FAILED (455706685):
                Operation is in an error state.
            PROPAGATED (507550299):
                Operation is confirmed to be in the location.
            PROPAGATING (164807046):
                Operation is not yet confirmed to have been
                created in the location.
            UNSPECIFIED (526786327):
                No description available.
        """
        UNDEFINED_STATE = 0
        ABANDONED = 81797556
        DONE = 2104194
        FAILED = 455706685
        PROPAGATED = 507550299
        PROPAGATING = 164807046
        UNSPECIFIED = 526786327

    error: "Status" = proto.Field(
        proto.MESSAGE,
        number=96784904,
        optional=True,
        message="Status",
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )


class SetCommonInstanceMetadataProjectRequest(proto.Message):
    r"""A request message for Projects.SetCommonInstanceMetadata. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        metadata_resource (google.cloud.compute_v1beta.types.Metadata):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    metadata_resource: "Metadata" = proto.Field(
        proto.MESSAGE,
        number=291086110,
        message="Metadata",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetDefaultNetworkTierProjectRequest(proto.Message):
    r"""A request message for Projects.SetDefaultNetworkTier. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        projects_set_default_network_tier_request_resource (google.cloud.compute_v1beta.types.ProjectsSetDefaultNetworkTierRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    projects_set_default_network_tier_request_resource: "ProjectsSetDefaultNetworkTierRequest" = proto.Field(
        proto.MESSAGE,
        number=126410762,
        message="ProjectsSetDefaultNetworkTierRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetDeletionProtectionInstanceRequest(proto.Message):
    r"""A request message for Instances.SetDeletionProtection. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        deletion_protection (bool):
            Whether the resource should be protected
            against deletion.

            This field is a member of `oneof`_ ``_deletion_protection``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
    """

    deletion_protection: bool = proto.Field(
        proto.BOOL,
        number=458014698,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetDiskAutoDeleteInstanceRequest(proto.Message):
    r"""A request message for Instances.SetDiskAutoDelete. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_delete (bool):
            Whether to auto-delete the disk when the
            instance is deleted.
        device_name (str):
            The device name of the disk to modify. Make a
            get() request on the instance to view currently
            attached disks and device names.
        instance (str):
            The instance name for this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    auto_delete: bool = proto.Field(
        proto.BOOL,
        number=464761403,
    )
    device_name: str = proto.Field(
        proto.STRING,
        number=67541716,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetEdgeSecurityPolicyBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.SetEdgeSecurityPolicy.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_bucket (str):
            Name of the BackendBucket resource to which
            the security policy should be set. The name
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_reference_resource (google.cloud.compute_v1beta.types.SecurityPolicyReference):
            The body resource for this request
    """

    backend_bucket: str = proto.Field(
        proto.STRING,
        number=91714037,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_reference_resource: "SecurityPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=204135024,
        message="SecurityPolicyReference",
    )


class SetEdgeSecurityPolicyBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.SetEdgeSecurityPolicy.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to which
            the edge security policy should be set. The name
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_reference_resource (google.cloud.compute_v1beta.types.SecurityPolicyReference):
            The body resource for this request
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_reference_resource: "SecurityPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=204135024,
        message="SecurityPolicyReference",
    )


class SetIamPolicyBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.SetIamPolicy. See the
    method description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.SetIamPolicy. See the
    method description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyDiskRequest(proto.Message):
    r"""A request message for Disks.SetIamPolicy. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_policy_request_resource (google.cloud.compute_v1beta.types.ZoneSetPolicyRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_policy_request_resource: "ZoneSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=382082107,
        message="ZoneSetPolicyRequest",
    )


class SetIamPolicyFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.SetIamPolicy. See the
    method description for details.

    Attributes:
        global_organization_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalOrganizationSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    global_organization_set_policy_request_resource: "GlobalOrganizationSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=177408606,
        message="GlobalOrganizationSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyImageRequest(proto.Message):
    r"""A request message for Images.SetIamPolicy. See the method
    description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyInstanceRequest(proto.Message):
    r"""A request message for Instances.SetIamPolicy. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_policy_request_resource (google.cloud.compute_v1beta.types.ZoneSetPolicyRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_policy_request_resource: "ZoneSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=382082107,
        message="ZoneSetPolicyRequest",
    )


class SetIamPolicyInstanceTemplateRequest(proto.Message):
    r"""A request message for InstanceTemplates.SetIamPolicy. See the
    method description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyInstantSnapshotRequest(proto.Message):
    r"""A request message for InstantSnapshots.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_policy_request_resource (google.cloud.compute_v1beta.types.ZoneSetPolicyRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_policy_request_resource: "ZoneSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=382082107,
        message="ZoneSetPolicyRequest",
    )


class SetIamPolicyInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for
    InterconnectAttachmentGroups.SetIamPolicy. See the method
    description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.SetIamPolicy. See
    the method description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyLicenseRequest(proto.Message):
    r"""A request message for Licenses.SetIamPolicy. See the method
    description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyMachineImageRequest(proto.Message):
    r"""A request message for MachineImages.SetIamPolicy. See the
    method description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyNetworkAttachmentRequest(proto.Message):
    r"""A request message for NetworkAttachments.SetIamPolicy. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for NetworkFirewallPolicies.SetIamPolicy.
    See the method description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.SetIamPolicy. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_policy_request_resource (google.cloud.compute_v1beta.types.ZoneSetPolicyRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_policy_request_resource: "ZoneSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=382082107,
        message="ZoneSetPolicyRequest",
    )


class SetIamPolicyNodeTemplateRequest(proto.Message):
    r"""A request message for NodeTemplates.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.SetIamPolicy. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyRegionInstantSnapshotRequest(proto.Message):
    r"""A request message for RegionInstantSnapshots.SetIamPolicy.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.SetIamPolicy. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyRegionSnapshotRequest(proto.Message):
    r"""A request message for RegionSnapshots.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyReservationRequest(proto.Message):
    r"""A request message for Reservations.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_policy_request_resource (google.cloud.compute_v1beta.types.ZoneSetPolicyRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_policy_request_resource: "ZoneSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=382082107,
        message="ZoneSetPolicyRequest",
    )


class SetIamPolicyResourcePolicyRequest(proto.Message):
    r"""A request message for ResourcePolicies.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyServiceAttachmentRequest(proto.Message):
    r"""A request message for ServiceAttachments.SetIamPolicy. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicySnapshotRequest(proto.Message):
    r"""A request message for Snapshots.SetIamPolicy. See the method
    description for details.

    Attributes:
        global_set_policy_request_resource (google.cloud.compute_v1beta.types.GlobalSetPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_policy_request_resource: "GlobalSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=337048498,
        message="GlobalSetPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetIamPolicyStoragePoolRequest(proto.Message):
    r"""A request message for StoragePools.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_policy_request_resource (google.cloud.compute_v1beta.types.ZoneSetPolicyRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_policy_request_resource: "ZoneSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=382082107,
        message="ZoneSetPolicyRequest",
    )


class SetIamPolicySubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.SetIamPolicy. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_set_policy_request_resource (google.cloud.compute_v1beta.types.RegionSetPolicyRequest):
            The body resource for this request
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_policy_request_resource: "RegionSetPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=276489091,
        message="RegionSetPolicyRequest",
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetInstanceTemplateInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.SetInstanceTemplate. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_set_instance_template_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersSetInstanceTemplateRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_set_instance_template_request_resource: "InstanceGroupManagersSetInstanceTemplateRequest" = proto.Field(
        proto.MESSAGE,
        number=9809093,
        message="InstanceGroupManagersSetInstanceTemplateRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetInstanceTemplateRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.SetInstanceTemplate. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_set_template_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersSetTemplateRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_set_template_request_resource: "RegionInstanceGroupManagersSetTemplateRequest" = proto.Field(
        proto.MESSAGE,
        number=187310412,
        message="RegionInstanceGroupManagersSetTemplateRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetLabelsAddressRequest(proto.Message):
    r"""A request message for Addresses.SetLabels. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsDiskRequest(proto.Message):
    r"""A request message for Disks.SetLabels. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_labels_request_resource (google.cloud.compute_v1beta.types.ZoneSetLabelsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_labels_request_resource: "ZoneSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=364950798,
        message="ZoneSetLabelsRequest",
    )


class SetLabelsExternalVpnGatewayRequest(proto.Message):
    r"""A request message for ExternalVpnGateways.SetLabels. See the
    method description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsForwardingRuleRequest(proto.Message):
    r"""A request message for ForwardingRules.SetLabels. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsGlobalAddressRequest(proto.Message):
    r"""A request message for GlobalAddresses.SetLabels. See the
    method description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsGlobalForwardingRuleRequest(proto.Message):
    r"""A request message for GlobalForwardingRules.SetLabels. See
    the method description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsImageRequest(proto.Message):
    r"""A request message for Images.SetLabels. See the method
    description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsInstanceRequest(proto.Message):
    r"""A request message for Instances.SetLabels. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        instances_set_labels_request_resource (google.cloud.compute_v1beta.types.InstancesSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_set_labels_request_resource: "InstancesSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=207749344,
        message="InstancesSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetLabelsInstantSnapshotRequest(proto.Message):
    r"""A request message for InstantSnapshots.SetLabels. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
        zone (str):
            The name of the zone for this request.
        zone_set_labels_request_resource (google.cloud.compute_v1beta.types.ZoneSetLabelsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )
    zone_set_labels_request_resource: "ZoneSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=364950798,
        message="ZoneSetLabelsRequest",
    )


class SetLabelsInterconnectAttachmentRequest(proto.Message):
    r"""A request message for InterconnectAttachments.SetLabels. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.SetLabels. See the method
    description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsMachineImageRequest(proto.Message):
    r"""A request message for MachineImages.SetLabels. See the method
    description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.SetLabels. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsRegionInstantSnapshotRequest(proto.Message):
    r"""A request message for RegionInstantSnapshots.SetLabels. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsRegionSecurityPolicyRequest(proto.Message):
    r"""A request message for RegionSecurityPolicies.SetLabels. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsRegionSnapshotRequest(proto.Message):
    r"""A request message for RegionSnapshots.SetLabels. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.SetLabels. See the
    method description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsSnapshotRequest(proto.Message):
    r"""A request message for Snapshots.SetLabels. See the method
    description for details.

    Attributes:
        global_set_labels_request_resource (google.cloud.compute_v1beta.types.GlobalSetLabelsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
    """

    global_set_labels_request_resource: "GlobalSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=319917189,
        message="GlobalSetLabelsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsTargetVpnGatewayRequest(proto.Message):
    r"""A request message for TargetVpnGateways.SetLabels. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsVpnGatewayRequest(proto.Message):
    r"""A request message for VpnGateways.SetLabels. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetLabelsVpnTunnelRequest(proto.Message):
    r"""A request message for VpnTunnels.SetLabels. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The region for this request.
        region_set_labels_request_resource (google.cloud.compute_v1beta.types.RegionSetLabelsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        resource (str):
            Name or id of the resource for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_set_labels_request_resource: "RegionSetLabelsRequest" = proto.Field(
        proto.MESSAGE,
        number=259357782,
        message="RegionSetLabelsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )


class SetMachineResourcesInstanceRequest(proto.Message):
    r"""A request message for Instances.SetMachineResources. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        instances_set_machine_resources_request_resource (google.cloud.compute_v1beta.types.InstancesSetMachineResourcesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_set_machine_resources_request_resource: "InstancesSetMachineResourcesRequest" = proto.Field(
        proto.MESSAGE,
        number=196286318,
        message="InstancesSetMachineResourcesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetMachineTypeInstanceRequest(proto.Message):
    r"""A request message for Instances.SetMachineType. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        instances_set_machine_type_request_resource (google.cloud.compute_v1beta.types.InstancesSetMachineTypeRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_set_machine_type_request_resource: "InstancesSetMachineTypeRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=254157709,
            message="InstancesSetMachineTypeRequest",
        )
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetManagedProtectionTierProjectRequest(proto.Message):
    r"""A request message for Projects.SetManagedProtectionTier. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        projects_set_managed_protection_tier_request_resource (google.cloud.compute_v1beta.types.ProjectsSetManagedProtectionTierRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    projects_set_managed_protection_tier_request_resource: "ProjectsSetManagedProtectionTierRequest" = proto.Field(
        proto.MESSAGE,
        number=351145751,
        message="ProjectsSetManagedProtectionTierRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetMetadataInstanceRequest(proto.Message):
    r"""A request message for Instances.SetMetadata. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        metadata_resource (google.cloud.compute_v1beta.types.Metadata):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    metadata_resource: "Metadata" = proto.Field(
        proto.MESSAGE,
        number=291086110,
        message="Metadata",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetMinCpuPlatformInstanceRequest(proto.Message):
    r"""A request message for Instances.SetMinCpuPlatform. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        instances_set_min_cpu_platform_request_resource (google.cloud.compute_v1beta.types.InstancesSetMinCpuPlatformRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_set_min_cpu_platform_request_resource: "InstancesSetMinCpuPlatformRequest" = proto.Field(
        proto.MESSAGE,
        number=148459368,
        message="InstancesSetMinCpuPlatformRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetNameInstanceRequest(proto.Message):
    r"""A request message for Instances.SetName. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            The instance name for this request.
        instances_set_name_request_resource (google.cloud.compute_v1beta.types.InstancesSetNameRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_set_name_request_resource: "InstancesSetNameRequest" = proto.Field(
        proto.MESSAGE,
        number=272080980,
        message="InstancesSetNameRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetNamedPortsInstanceGroupRequest(proto.Message):
    r"""A request message for InstanceGroups.SetNamedPorts. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group (str):
            The name of the instance group where the
            named ports are updated.
        instance_groups_set_named_ports_request_resource (google.cloud.compute_v1beta.types.InstanceGroupsSetNamedPortsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the instance group
            is located.
    """

    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    instance_groups_set_named_ports_request_resource: "InstanceGroupsSetNamedPortsRequest" = proto.Field(
        proto.MESSAGE,
        number=385151535,
        message="InstanceGroupsSetNamedPortsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetNamedPortsRegionInstanceGroupRequest(proto.Message):
    r"""A request message for RegionInstanceGroups.SetNamedPorts. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group (str):
            The name of the regional instance group where
            the named ports are updated.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_groups_set_named_ports_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupsSetNamedPortsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group: str = proto.Field(
        proto.STRING,
        number=81095253,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_groups_set_named_ports_request_resource: "RegionInstanceGroupsSetNamedPortsRequest" = proto.Field(
        proto.MESSAGE,
        number=1574938,
        message="RegionInstanceGroupsSetNamedPortsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetNodeTemplateNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.SetNodeTemplate. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_group (str):
            Name of the NodeGroup resource to update.
        node_groups_set_node_template_request_resource (google.cloud.compute_v1beta.types.NodeGroupsSetNodeTemplateRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    node_groups_set_node_template_request_resource: "NodeGroupsSetNodeTemplateRequest" = proto.Field(
        proto.MESSAGE,
        number=117382321,
        message="NodeGroupsSetNodeTemplateRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetPrivateIpGoogleAccessSubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.SetPrivateIpGoogleAccess.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        subnetwork (str):
            Name of the Subnetwork resource.
        subnetworks_set_private_ip_google_access_request_resource (google.cloud.compute_v1beta.types.SubnetworksSetPrivateIpGoogleAccessRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
    )
    subnetworks_set_private_ip_google_access_request_resource: "SubnetworksSetPrivateIpGoogleAccessRequest" = proto.Field(
        proto.MESSAGE,
        number=268920696,
        message="SubnetworksSetPrivateIpGoogleAccessRequest",
    )


class SetProxyHeaderTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.SetProxyHeader. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_ssl_proxies_set_proxy_header_request_resource (google.cloud.compute_v1beta.types.TargetSslProxiesSetProxyHeaderRequest):
            The body resource for this request
        target_ssl_proxy (str):
            Name of the TargetSslProxy resource whose
            ProxyHeader is to be set.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_ssl_proxies_set_proxy_header_request_resource: "TargetSslProxiesSetProxyHeaderRequest" = proto.Field(
        proto.MESSAGE,
        number=205284526,
        message="TargetSslProxiesSetProxyHeaderRequest",
    )
    target_ssl_proxy: str = proto.Field(
        proto.STRING,
        number=338795853,
    )


class SetProxyHeaderTargetTcpProxyRequest(proto.Message):
    r"""A request message for TargetTcpProxies.SetProxyHeader. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_tcp_proxies_set_proxy_header_request_resource (google.cloud.compute_v1beta.types.TargetTcpProxiesSetProxyHeaderRequest):
            The body resource for this request
        target_tcp_proxy (str):
            Name of the TargetTcpProxy resource whose
            ProxyHeader is to be set.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_tcp_proxies_set_proxy_header_request_resource: "TargetTcpProxiesSetProxyHeaderRequest" = proto.Field(
        proto.MESSAGE,
        number=219958339,
        message="TargetTcpProxiesSetProxyHeaderRequest",
    )
    target_tcp_proxy: str = proto.Field(
        proto.STRING,
        number=503065442,
    )


class SetQuicOverrideTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.SetQuicOverride. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxies_set_quic_override_request_resource (google.cloud.compute_v1beta.types.TargetHttpsProxiesSetQuicOverrideRequest):
            The body resource for this request
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to set
            the QUIC override policy for. The name should
            conform to RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxies_set_quic_override_request_resource: "TargetHttpsProxiesSetQuicOverrideRequest" = proto.Field(
        proto.MESSAGE,
        number=72940258,
        message="TargetHttpsProxiesSetQuicOverrideRequest",
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class SetSchedulingInstanceRequest(proto.Message):
    r"""A request message for Instances.SetScheduling. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Instance name for this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        scheduling_resource (google.cloud.compute_v1beta.types.Scheduling):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    scheduling_resource: "Scheduling" = proto.Field(
        proto.MESSAGE,
        number=463181401,
        message="Scheduling",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetSecurityPolicyBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.SetSecurityPolicy. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to which
            the security policy should be set. The name
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_reference_resource (google.cloud.compute_v1beta.types.SecurityPolicyReference):
            The body resource for this request
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_reference_resource: "SecurityPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=204135024,
        message="SecurityPolicyReference",
    )


class SetSecurityPolicyInstanceRequest(proto.Message):
    r"""A request message for Instances.SetSecurityPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the Instance resource to which the
            security policy should be set. The name should
            conform to RFC1035.
        instances_set_security_policy_request_resource (google.cloud.compute_v1beta.types.InstancesSetSecurityPolicyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone scoping this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_set_security_policy_request_resource: "InstancesSetSecurityPolicyRequest" = proto.Field(
        proto.MESSAGE,
        number=248424586,
        message="InstancesSetSecurityPolicyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetSecurityPolicyRegionBackendServiceRequest(proto.Message):
    r"""A request message for
    RegionBackendServices.SetSecurityPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to which
            the security policy should be set. The name
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_reference_resource (google.cloud.compute_v1beta.types.SecurityPolicyReference):
            The body resource for this request
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_reference_resource: "SecurityPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=204135024,
        message="SecurityPolicyReference",
    )


class SetSecurityPolicyTargetInstanceRequest(proto.Message):
    r"""A request message for TargetInstances.SetSecurityPolicy. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_reference_resource (google.cloud.compute_v1beta.types.SecurityPolicyReference):
            The body resource for this request
        target_instance (str):
            Name of the TargetInstance resource to which
            the security policy should be set. The name
            should conform to RFC1035.
        zone (str):
            Name of the zone scoping this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_reference_resource: "SecurityPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=204135024,
        message="SecurityPolicyReference",
    )
    target_instance: str = proto.Field(
        proto.STRING,
        number=289769347,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetSecurityPolicyTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.SetSecurityPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        security_policy_reference_resource (google.cloud.compute_v1beta.types.SecurityPolicyReference):
            The body resource for this request
        target_pool (str):
            Name of the TargetPool resource to which the
            security policy should be set. The name should
            conform to RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    security_policy_reference_resource: "SecurityPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=204135024,
        message="SecurityPolicyReference",
    )
    target_pool: str = proto.Field(
        proto.STRING,
        number=62796298,
    )


class SetServiceAccountInstanceRequest(proto.Message):
    r"""A request message for Instances.SetServiceAccount. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance resource to start.
        instances_set_service_account_request_resource (google.cloud.compute_v1beta.types.InstancesSetServiceAccountRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_set_service_account_request_resource: "InstancesSetServiceAccountRequest" = proto.Field(
        proto.MESSAGE,
        number=275550008,
        message="InstancesSetServiceAccountRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetShieldedInstanceIntegrityPolicyInstanceRequest(proto.Message):
    r"""A request message for
    Instances.SetShieldedInstanceIntegrityPolicy. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name or id of the instance scoping this
            request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        shielded_instance_integrity_policy_resource (google.cloud.compute_v1beta.types.ShieldedInstanceIntegrityPolicy):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    shielded_instance_integrity_policy_resource: "ShieldedInstanceIntegrityPolicy" = (
        proto.Field(
            proto.MESSAGE,
            number=409169462,
            message="ShieldedInstanceIntegrityPolicy",
        )
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetShieldedVmIntegrityPolicyInstanceRequest(proto.Message):
    r"""A request message for Instances.SetShieldedVmIntegrityPolicy.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        shielded_vm_integrity_policy_resource (google.cloud.compute_v1beta.types.ShieldedVmIntegrityPolicy):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    shielded_vm_integrity_policy_resource: "ShieldedVmIntegrityPolicy" = proto.Field(
        proto.MESSAGE,
        number=34705176,
        message="ShieldedVmIntegrityPolicy",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetSslCertificatesRegionTargetHttpsProxyRequest(proto.Message):
    r"""A request message for
    RegionTargetHttpsProxies.SetSslCertificates. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_target_https_proxies_set_ssl_certificates_request_resource (google.cloud.compute_v1beta.types.RegionTargetHttpsProxiesSetSslCertificatesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to set
            an SslCertificates resource for.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_target_https_proxies_set_ssl_certificates_request_resource: "RegionTargetHttpsProxiesSetSslCertificatesRequest" = proto.Field(
        proto.MESSAGE,
        number=390693383,
        message="RegionTargetHttpsProxiesSetSslCertificatesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class SetSslCertificatesTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.SetSslCertificates.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxies_set_ssl_certificates_request_resource (google.cloud.compute_v1beta.types.TargetHttpsProxiesSetSslCertificatesRequest):
            The body resource for this request
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource to set
            an SslCertificates resource for.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxies_set_ssl_certificates_request_resource: "TargetHttpsProxiesSetSslCertificatesRequest" = proto.Field(
        proto.MESSAGE,
        number=223122908,
        message="TargetHttpsProxiesSetSslCertificatesRequest",
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class SetSslCertificatesTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.SetSslCertificates.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_ssl_proxies_set_ssl_certificates_request_resource (google.cloud.compute_v1beta.types.TargetSslProxiesSetSslCertificatesRequest):
            The body resource for this request
        target_ssl_proxy (str):
            Name of the TargetSslProxy resource whose
            SslCertificate resource is to be set.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_ssl_proxies_set_ssl_certificates_request_resource: "TargetSslProxiesSetSslCertificatesRequest" = proto.Field(
        proto.MESSAGE,
        number=147940797,
        message="TargetSslProxiesSetSslCertificatesRequest",
    )
    target_ssl_proxy: str = proto.Field(
        proto.STRING,
        number=338795853,
    )


class SetSslPolicyTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.SetSslPolicy. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy_reference_resource (google.cloud.compute_v1beta.types.SslPolicyReference):
            The body resource for this request
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource whose
            SSL policy is to be set. The name must be 1-63
            characters long, and comply with RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy_reference_resource: "SslPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=235403836,
        message="SslPolicyReference",
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )


class SetSslPolicyTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.SetSslPolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        ssl_policy_reference_resource (google.cloud.compute_v1beta.types.SslPolicyReference):
            The body resource for this request
        target_ssl_proxy (str):
            Name of the TargetSslProxy resource whose SSL
            policy is to be set. The name must be 1-63
            characters long, and comply with RFC1035.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    ssl_policy_reference_resource: "SslPolicyReference" = proto.Field(
        proto.MESSAGE,
        number=235403836,
        message="SslPolicyReference",
    )
    target_ssl_proxy: str = proto.Field(
        proto.STRING,
        number=338795853,
    )


class SetTagsInstanceRequest(proto.Message):
    r"""A request message for Instances.SetTags. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        tags_resource (google.cloud.compute_v1beta.types.Tags):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    tags_resource: "Tags" = proto.Field(
        proto.MESSAGE,
        number=331435380,
        message="Tags",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetTargetForwardingRuleRequest(proto.Message):
    r"""A request message for ForwardingRules.SetTarget. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource in which
            target is to be set.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_reference_resource (google.cloud.compute_v1beta.types.TargetReference):
            The body resource for this request
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_reference_resource: "TargetReference" = proto.Field(
        proto.MESSAGE,
        number=523721712,
        message="TargetReference",
    )


class SetTargetGlobalForwardingRuleRequest(proto.Message):
    r"""A request message for GlobalForwardingRules.SetTarget. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        forwarding_rule (str):
            Name of the ForwardingRule resource in which
            target is to be set.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_reference_resource (google.cloud.compute_v1beta.types.TargetReference):
            The body resource for this request
    """

    forwarding_rule: str = proto.Field(
        proto.STRING,
        number=269964030,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_reference_resource: "TargetReference" = proto.Field(
        proto.MESSAGE,
        number=523721712,
        message="TargetReference",
    )


class SetTargetPoolsInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.SetTargetPools.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_set_target_pools_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersSetTargetPoolsRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_set_target_pools_request_resource: "InstanceGroupManagersSetTargetPoolsRequest" = proto.Field(
        proto.MESSAGE,
        number=281150216,
        message="InstanceGroupManagersSetTargetPoolsRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SetTargetPoolsRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.SetTargetPools. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_set_target_pools_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersSetTargetPoolsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_set_target_pools_request_resource: "RegionInstanceGroupManagersSetTargetPoolsRequest" = proto.Field(
        proto.MESSAGE,
        number=78734717,
        message="RegionInstanceGroupManagersSetTargetPoolsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SetUrlMapRegionTargetHttpProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpProxies.SetUrlMap. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_http_proxy (str):
            Name of the TargetHttpProxy to set a URL map
            for.
        url_map_reference_resource (google.cloud.compute_v1beta.types.UrlMapReference):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_http_proxy: str = proto.Field(
        proto.STRING,
        number=206872421,
    )
    url_map_reference_resource: "UrlMapReference" = proto.Field(
        proto.MESSAGE,
        number=398701333,
        message="UrlMapReference",
    )


class SetUrlMapRegionTargetHttpsProxyRequest(proto.Message):
    r"""A request message for RegionTargetHttpsProxies.SetUrlMap. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy (str):
            Name of the TargetHttpsProxy to set a URL map
            for.
        url_map_reference_resource (google.cloud.compute_v1beta.types.UrlMapReference):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )
    url_map_reference_resource: "UrlMapReference" = proto.Field(
        proto.MESSAGE,
        number=398701333,
        message="UrlMapReference",
    )


class SetUrlMapTargetHttpProxyRequest(proto.Message):
    r"""A request message for TargetHttpProxies.SetUrlMap. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_http_proxy (str):
            Name of the TargetHttpProxy to set a URL map
            for.
        url_map_reference_resource (google.cloud.compute_v1beta.types.UrlMapReference):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_http_proxy: str = proto.Field(
        proto.STRING,
        number=206872421,
    )
    url_map_reference_resource: "UrlMapReference" = proto.Field(
        proto.MESSAGE,
        number=398701333,
        message="UrlMapReference",
    )


class SetUrlMapTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.SetUrlMap. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        target_https_proxy (str):
            Name of the TargetHttpsProxy resource whose
            URL map is to be set.
        url_map_reference_resource (google.cloud.compute_v1beta.types.UrlMapReference):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    target_https_proxy: str = proto.Field(
        proto.STRING,
        number=52336748,
    )
    url_map_reference_resource: "UrlMapReference" = proto.Field(
        proto.MESSAGE,
        number=398701333,
        message="UrlMapReference",
    )


class SetUsageExportBucketProjectRequest(proto.Message):
    r"""A request message for Projects.SetUsageExportBucket. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        usage_export_location_resource (google.cloud.compute_v1beta.types.UsageExportLocation):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    usage_export_location_resource: "UsageExportLocation" = proto.Field(
        proto.MESSAGE,
        number=20260459,
        message="UsageExportLocation",
    )


class ShareSettings(proto.Message):
    r"""The share setting for reservations and sole tenancy node
    groups.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project_map (MutableMapping[str, google.cloud.compute_v1beta.types.ShareSettingsProjectConfig]):
            A map of project id and project config. This is only valid
            when share_type's value is SPECIFIC_PROJECTS.
        projects (MutableSequence[str]):
            A List of Project names to specify consumer projects for
            this shared-reservation. This is only valid when
            share_type's value is SPECIFIC_PROJECTS.
        share_type (str):
            Type of sharing for this shared-reservation
            Check the ShareType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_share_type``.
    """

    class ShareType(proto.Enum):
        r"""Type of sharing for this shared-reservation

        Values:
            UNDEFINED_SHARE_TYPE (0):
                A value indicating that the enum field is not
                set.
            LOCAL (72607563):
                Default value.
            ORGANIZATION (274978099):
                Shared-reservation is open to entire
                Organization
            SHARE_TYPE_UNSPECIFIED (494771730):
                Default value. This value is unused.
            SPECIFIC_PROJECTS (347838695):
                Shared-reservation is open to specific
                projects
        """
        UNDEFINED_SHARE_TYPE = 0
        LOCAL = 72607563
        ORGANIZATION = 274978099
        SHARE_TYPE_UNSPECIFIED = 494771730
        SPECIFIC_PROJECTS = 347838695

    project_map: MutableMapping[str, "ShareSettingsProjectConfig"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=134212406,
        message="ShareSettingsProjectConfig",
    )
    projects: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=75044986,
    )
    share_type: str = proto.Field(
        proto.STRING,
        number=359533466,
        optional=True,
    )


class ShareSettingsProjectConfig(proto.Message):
    r"""Config for each project in the share settings.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project_id (str):
            The project ID, should be same as the key of
            this project config in the parent map.

            This field is a member of `oneof`_ ``_project_id``.
    """

    project_id: str = proto.Field(
        proto.STRING,
        number=177513473,
        optional=True,
    )


class ShieldedInstanceConfig(proto.Message):
    r"""A set of Shielded Instance options.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable_integrity_monitoring (bool):
            Defines whether the instance has integrity
            monitoring enabled. Enabled by default.

            This field is a member of `oneof`_ ``_enable_integrity_monitoring``.
        enable_secure_boot (bool):
            Defines whether the instance has Secure Boot
            enabled. Disabled by default.

            This field is a member of `oneof`_ ``_enable_secure_boot``.
        enable_vtpm (bool):
            Defines whether the instance has the vTPM
            enabled. Enabled by default.

            This field is a member of `oneof`_ ``_enable_vtpm``.
    """

    enable_integrity_monitoring: bool = proto.Field(
        proto.BOOL,
        number=409071030,
        optional=True,
    )
    enable_secure_boot: bool = proto.Field(
        proto.BOOL,
        number=123568638,
        optional=True,
    )
    enable_vtpm: bool = proto.Field(
        proto.BOOL,
        number=181858935,
        optional=True,
    )


class ShieldedInstanceIdentity(proto.Message):
    r"""A Shielded Instance Identity.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        encryption_key (google.cloud.compute_v1beta.types.ShieldedInstanceIdentityEntry):
            An Endorsement Key (EK) made by the RSA 2048
            algorithm issued to the Shielded Instance's
            vTPM.

            This field is a member of `oneof`_ ``_encryption_key``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#shieldedInstanceIdentity for shielded Instance
            identity entry.

            This field is a member of `oneof`_ ``_kind``.
        signing_key (google.cloud.compute_v1beta.types.ShieldedInstanceIdentityEntry):
            An Attestation Key (AK) made by the RSA 2048
            algorithm issued to the Shielded Instance's
            vTPM.

            This field is a member of `oneof`_ ``_signing_key``.
    """

    encryption_key: "ShieldedInstanceIdentityEntry" = proto.Field(
        proto.MESSAGE,
        number=488268707,
        optional=True,
        message="ShieldedInstanceIdentityEntry",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    signing_key: "ShieldedInstanceIdentityEntry" = proto.Field(
        proto.MESSAGE,
        number=320948261,
        optional=True,
        message="ShieldedInstanceIdentityEntry",
    )


class ShieldedInstanceIdentityEntry(proto.Message):
    r"""A Shielded Instance Identity Entry.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ek_cert (str):
            A PEM-encoded X.509 certificate. This field
            can be empty.

            This field is a member of `oneof`_ ``_ek_cert``.
        ek_pub (str):
            A PEM-encoded public key.

            This field is a member of `oneof`_ ``_ek_pub``.
    """

    ek_cert: str = proto.Field(
        proto.STRING,
        number=450178589,
        optional=True,
    )
    ek_pub: str = proto.Field(
        proto.STRING,
        number=308947940,
        optional=True,
    )


class ShieldedInstanceIntegrityPolicy(proto.Message):
    r"""The policy describes the baseline against which Instance boot
    integrity is measured.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        update_auto_learn_policy (bool):
            Updates the integrity policy baseline using
            the measurements from the VM instance's most
            recent boot.

            This field is a member of `oneof`_ ``_update_auto_learn_policy``.
    """

    update_auto_learn_policy: bool = proto.Field(
        proto.BOOL,
        number=245490215,
        optional=True,
    )


class ShieldedVmConfig(proto.Message):
    r"""A set of Shielded VM options.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        enable_integrity_monitoring (bool):
            Defines whether the instance has integrity
            monitoring enabled.

            This field is a member of `oneof`_ ``_enable_integrity_monitoring``.
        enable_secure_boot (bool):
            Defines whether the instance has Secure Boot
            enabled.

            This field is a member of `oneof`_ ``_enable_secure_boot``.
        enable_vtpm (bool):
            Defines whether the instance has the vTPM
            enabled.

            This field is a member of `oneof`_ ``_enable_vtpm``.
    """

    enable_integrity_monitoring: bool = proto.Field(
        proto.BOOL,
        number=409071030,
        optional=True,
    )
    enable_secure_boot: bool = proto.Field(
        proto.BOOL,
        number=123568638,
        optional=True,
    )
    enable_vtpm: bool = proto.Field(
        proto.BOOL,
        number=181858935,
        optional=True,
    )


class ShieldedVmIdentity(proto.Message):
    r"""A Shielded VM Identity.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        encryption_key (google.cloud.compute_v1beta.types.ShieldedVmIdentityEntry):
            An Endorsement Key (EK) issued to the
            Shielded VM's vTPM.

            This field is a member of `oneof`_ ``_encryption_key``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#shieldedVmIdentity for shielded VM identity entry.

            This field is a member of `oneof`_ ``_kind``.
        signing_key (google.cloud.compute_v1beta.types.ShieldedVmIdentityEntry):
            An Attestation Key (AK) issued to the
            Shielded VM's vTPM.

            This field is a member of `oneof`_ ``_signing_key``.
    """

    encryption_key: "ShieldedVmIdentityEntry" = proto.Field(
        proto.MESSAGE,
        number=488268707,
        optional=True,
        message="ShieldedVmIdentityEntry",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    signing_key: "ShieldedVmIdentityEntry" = proto.Field(
        proto.MESSAGE,
        number=320948261,
        optional=True,
        message="ShieldedVmIdentityEntry",
    )


class ShieldedVmIdentityEntry(proto.Message):
    r"""A Shielded Instance Identity Entry.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ek_cert (str):
            A PEM-encoded X.509 certificate. This field
            can be empty.

            This field is a member of `oneof`_ ``_ek_cert``.
        ek_pub (str):
            A PEM-encoded public key.

            This field is a member of `oneof`_ ``_ek_pub``.
    """

    ek_cert: str = proto.Field(
        proto.STRING,
        number=450178589,
        optional=True,
    )
    ek_pub: str = proto.Field(
        proto.STRING,
        number=308947940,
        optional=True,
    )


class ShieldedVmIntegrityPolicy(proto.Message):
    r"""The policy describes the baseline against which VM instance
    boot integrity is measured.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        update_auto_learn_policy (bool):
            Updates the integrity policy baseline using
            the measurements from the VM instance's most
            recent boot.

            This field is a member of `oneof`_ ``_update_auto_learn_policy``.
    """

    update_auto_learn_policy: bool = proto.Field(
        proto.BOOL,
        number=245490215,
        optional=True,
    )


class SignedUrlKey(proto.Message):
    r"""Represents a customer-supplied Signing Key used by Cloud CDN
    Signed URLs


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        key_name (str):
            Name of the key. The name must be 1-63 characters long, and
            comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_key_name``.
        key_value (str):
            128-bit key value used for signing the URL.
            The key value must be a valid RFC 4648 Section 5
            base64url encoded string.

            This field is a member of `oneof`_ ``_key_value``.
    """

    key_name: str = proto.Field(
        proto.STRING,
        number=500938859,
        optional=True,
    )
    key_value: str = proto.Field(
        proto.STRING,
        number=504106897,
        optional=True,
    )


class SimulateMaintenanceEventInstanceRequest(proto.Message):
    r"""A request message for Instances.SimulateMaintenanceEvent. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        with_extended_notifications (bool):
            Determines whether the customers receive
            notifications before migration. Only applicable
            to SF vms.

            This field is a member of `oneof`_ ``_with_extended_notifications``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    with_extended_notifications: bool = proto.Field(
        proto.BOOL,
        number=405957627,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SimulateMaintenanceEventNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.SimulateMaintenanceEvent.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        node_group (str):
            Name of the NodeGroup resource whose nodes
            will go under maintenance simulation.
        node_groups_simulate_maintenance_event_request_resource (google.cloud.compute_v1beta.types.NodeGroupsSimulateMaintenanceEventRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    node_group: str = proto.Field(
        proto.STRING,
        number=469958146,
    )
    node_groups_simulate_maintenance_event_request_resource: "NodeGroupsSimulateMaintenanceEventRequest" = proto.Field(
        proto.MESSAGE,
        number=351468764,
        message="NodeGroupsSimulateMaintenanceEventRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class Snapshot(proto.Message):
    r"""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.
    LINT.IfChange


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        architecture (str):
            [Output Only] The architecture of the snapshot. Valid values
            are ARM64 or X86_64. Check the Architecture enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_architecture``.
        auto_created (bool):
            [Output Only] Set to true if snapshots are automatically
            created by applying resource policy on the target disk.

            This field is a member of `oneof`_ ``_auto_created``.
        chain_name (str):
            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.

            This field is a member of `oneof`_ ``_chain_name``.
        creation_size_bytes (int):
            [Output Only] Size in bytes of the snapshot at creation
            time.

            This field is a member of `oneof`_ ``_creation_size_bytes``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        disk_size_gb (int):
            [Output Only] Size of the source disk, specified in GB.

            This field is a member of `oneof`_ ``_disk_size_gb``.
        download_bytes (int):
            [Output Only] Number of bytes downloaded to restore a
            snapshot to a disk.

            This field is a member of `oneof`_ ``_download_bytes``.
        enable_confidential_compute (bool):
            Whether this snapshot is created from a confidential compute
            mode disk. [Output Only]: This field is not set by user, but
            from source disk.

            This field is a member of `oneof`_ ``_enable_confidential_compute``.
        guest_flush (bool):
            [Input Only] Whether to attempt an application consistent
            snapshot by informing the OS to prepare for the snapshot
            process.

            This field is a member of `oneof`_ ``_guest_flush``.
        guest_os_features (MutableSequence[google.cloud.compute_v1beta.types.GuestOsFeature]):
            [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.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always compute#snapshot
            for Snapshot resources.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this snapshot, which is essentially a hash of
            the labels set used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash in order to update
            or change labels, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve a snapshot.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels to apply to this snapshot. These can
            be later modified by the setLabels method. Label
            values may be empty.
        license_codes (MutableSequence[int]):
            [Output Only] Integer license codes indicating which
            licenses are attached to this snapshot.
        licenses (MutableSequence[str]):
            [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).
        location_hint (str):
            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.

            This field is a member of `oneof`_ ``_location_hint``.
        name (str):
            Name of the resource; provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [Output Only] URL of the region where the snapshot resides.
            Only applicable for regional snapshots.

            This field is a member of `oneof`_ ``_region``.
        satisfies_pzi (bool):
            Output only. Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzi``.
        satisfies_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_satisfies_pzs``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        snapshot_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Encrypts the snapshot using a
            customer-supplied encryption key. After you
            encrypt a snapshot using a customer-supplied
            key, you must provide the same key if you use
            the snapshot later. For example, you must
            provide the encryption key when you create a
            disk from the encrypted snapshot in a future
            request. Customer-supplied encryption keys do
            not protect access to metadata of the snapshot.
            If you do not provide an encryption key when
            creating the snapshot, then the snapshot will be
            encrypted using an automatically generated key
            and you do not need to provide a key to use the
            snapshot later.

            This field is a member of `oneof`_ ``_snapshot_encryption_key``.
        snapshot_type (str):
            Indicates the type of the snapshot.
            Check the SnapshotType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_snapshot_type``.
        source_disk (str):
            The source disk used to create this snapshot.

            This field is a member of `oneof`_ ``_source_disk``.
        source_disk_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source disk. Required if the source disk is
            protected by a customer-supplied encryption key.

            This field is a member of `oneof`_ ``_source_disk_encryption_key``.
        source_disk_for_recovery_checkpoint (str):
            The source disk whose recovery checkpoint
            will be used to create this snapshot.

            This field is a member of `oneof`_ ``_source_disk_for_recovery_checkpoint``.
        source_disk_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_disk_id``.
        source_instant_snapshot (str):
            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

            This field is a member of `oneof`_ ``_source_instant_snapshot``.
        source_instant_snapshot_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            Customer provided encryption key when
            creating Snapshot from Instant Snapshot.

            This field is a member of `oneof`_ ``_source_instant_snapshot_encryption_key``.
        source_instant_snapshot_id (str):
            [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.

            This field is a member of `oneof`_ ``_source_instant_snapshot_id``.
        source_snapshot_schedule_policy (str):
            [Output Only] URL of the resource policy which created this
            scheduled snapshot.

            This field is a member of `oneof`_ ``_source_snapshot_schedule_policy``.
        source_snapshot_schedule_policy_id (str):
            [Output Only] ID of the resource policy which created this
            scheduled snapshot.

            This field is a member of `oneof`_ ``_source_snapshot_schedule_policy_id``.
        status (str):
            [Output Only] The status of the snapshot. This can be
            CREATING, DELETING, FAILED, READY, or UPLOADING. Check the
            Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        storage_bytes (int):
            [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.

            This field is a member of `oneof`_ ``_storage_bytes``.
        storage_bytes_status (str):
            [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.
            Check the StorageBytesStatus enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_storage_bytes_status``.
        storage_locations (MutableSequence[str]):
            Cloud Storage bucket storage location of the
            snapshot (regional or multi-regional).
        user_licenses (MutableSequence[str]):
            [Output Only] A list of user provided licenses represented
            by a list of URLs to the license resource.
    """

    class Architecture(proto.Enum):
        r"""[Output Only] The architecture of the snapshot. Valid values are
        ARM64 or X86_64.

        Values:
            UNDEFINED_ARCHITECTURE (0):
                A value indicating that the enum field is not
                set.
            ARCHITECTURE_UNSPECIFIED (394750507):
                Default value indicating Architecture is not
                set.
            ARM64 (62547450):
                Machines with architecture ARM64
            X86_64 (425300551):
                Machines with architecture X86_64
        """
        UNDEFINED_ARCHITECTURE = 0
        ARCHITECTURE_UNSPECIFIED = 394750507
        ARM64 = 62547450
        X86_64 = 425300551

    class SnapshotType(proto.Enum):
        r"""Indicates the type of the snapshot.

        Values:
            UNDEFINED_SNAPSHOT_TYPE (0):
                A value indicating that the enum field is not
                set.
            ARCHIVE (506752162):
                No description available.
            STANDARD (484642493):
                No description available.
        """
        UNDEFINED_SNAPSHOT_TYPE = 0
        ARCHIVE = 506752162
        STANDARD = 484642493

    class Status(proto.Enum):
        r"""[Output Only] The status of the snapshot. This can be CREATING,
        DELETING, FAILED, READY, or UPLOADING.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Snapshot creation is in progress.
            DELETING (528602024):
                Snapshot is currently being deleted.
            FAILED (455706685):
                Snapshot creation failed.
            READY (77848963):
                Snapshot has been created successfully.
            UPLOADING (267603489):
                Snapshot is being uploaded.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        FAILED = 455706685
        READY = 77848963
        UPLOADING = 267603489

    class StorageBytesStatus(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STORAGE_BYTES_STATUS (0):
                A value indicating that the enum field is not
                set.
            UPDATING (494614342):
                No description available.
            UP_TO_DATE (101306702):
                No description available.
        """
        UNDEFINED_STORAGE_BYTES_STATUS = 0
        UPDATING = 494614342
        UP_TO_DATE = 101306702

    architecture: str = proto.Field(
        proto.STRING,
        number=302803283,
        optional=True,
    )
    auto_created: bool = proto.Field(
        proto.BOOL,
        number=463922264,
        optional=True,
    )
    chain_name: str = proto.Field(
        proto.STRING,
        number=68644169,
        optional=True,
    )
    creation_size_bytes: int = proto.Field(
        proto.INT64,
        number=125400077,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disk_size_gb: int = proto.Field(
        proto.INT64,
        number=316263735,
        optional=True,
    )
    download_bytes: int = proto.Field(
        proto.INT64,
        number=435054068,
        optional=True,
    )
    enable_confidential_compute: bool = proto.Field(
        proto.BOOL,
        number=102135228,
        optional=True,
    )
    guest_flush: bool = proto.Field(
        proto.BOOL,
        number=385550813,
        optional=True,
    )
    guest_os_features: MutableSequence["GuestOsFeature"] = proto.RepeatedField(
        proto.MESSAGE,
        number=79294545,
        message="GuestOsFeature",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    license_codes: MutableSequence[int] = proto.RepeatedField(
        proto.INT64,
        number=45482664,
    )
    licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=337642578,
    )
    location_hint: str = proto.Field(
        proto.STRING,
        number=350519505,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    satisfies_pzi: bool = proto.Field(
        proto.BOOL,
        number=480964257,
        optional=True,
    )
    satisfies_pzs: bool = proto.Field(
        proto.BOOL,
        number=480964267,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    snapshot_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=43334526,
        optional=True,
        message="CustomerEncryptionKey",
    )
    snapshot_type: str = proto.Field(
        proto.STRING,
        number=124349653,
        optional=True,
    )
    source_disk: str = proto.Field(
        proto.STRING,
        number=451753793,
        optional=True,
    )
    source_disk_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=531501153,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_disk_for_recovery_checkpoint: str = proto.Field(
        proto.STRING,
        number=359837950,
        optional=True,
    )
    source_disk_id: str = proto.Field(
        proto.STRING,
        number=454190809,
        optional=True,
    )
    source_instant_snapshot: str = proto.Field(
        proto.STRING,
        number=219202054,
        optional=True,
    )
    source_instant_snapshot_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=436536060,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_instant_snapshot_id: str = proto.Field(
        proto.STRING,
        number=287582708,
        optional=True,
    )
    source_snapshot_schedule_policy: str = proto.Field(
        proto.STRING,
        number=235756291,
        optional=True,
    )
    source_snapshot_schedule_policy_id: str = proto.Field(
        proto.STRING,
        number=70489047,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    storage_bytes: int = proto.Field(
        proto.INT64,
        number=424631719,
        optional=True,
    )
    storage_bytes_status: str = proto.Field(
        proto.STRING,
        number=490739082,
        optional=True,
    )
    storage_locations: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=328005274,
    )
    user_licenses: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=388193862,
    )


class SnapshotAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.SnapshotsScopedList]):
            A list of SnapshotsScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#snapshotAggregatedList for aggregated lists of
            snapshots.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "SnapshotsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="SnapshotsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SnapshotList(proto.Message):
    r"""Contains a list of Snapshot resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Snapshot]):
            A list of Snapshot resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Snapshot"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Snapshot",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SnapshotSettings(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_location (google.cloud.compute_v1beta.types.SnapshotSettingsAccessLocation):
            (Regional snapshots use only)Policy of which
            location is allowed to access snapshot.

            This field is a member of `oneof`_ ``_access_location``.
        storage_location (google.cloud.compute_v1beta.types.SnapshotSettingsStorageLocationSettings):
            Policy of which storage location is going to
            be resolved, and additional data that
            particularizes how the policy is going to be
            carried out.

            This field is a member of `oneof`_ ``_storage_location``.
    """

    access_location: "SnapshotSettingsAccessLocation" = proto.Field(
        proto.MESSAGE,
        number=18410544,
        optional=True,
        message="SnapshotSettingsAccessLocation",
    )
    storage_location: "SnapshotSettingsStorageLocationSettings" = proto.Field(
        proto.MESSAGE,
        number=460859641,
        optional=True,
        message="SnapshotSettingsStorageLocationSettings",
    )


class SnapshotSettingsAccessLocation(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        locations (MutableMapping[str, google.cloud.compute_v1beta.types.SnapshotSettingsAccessLocationAccessLocationPreference]):
            List of regions that can restore a regional
            snapshot from the current region
        policy (str):
            Policy of which location is allowed to access
            snapshot. Check the Policy enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_policy``.
    """

    class Policy(proto.Enum):
        r"""Policy of which location is allowed to access snapshot.

        Values:
            UNDEFINED_POLICY (0):
                A value indicating that the enum field is not
                set.
            ALL_REGIONS (273143585):
                Any regions will be able to access the source
                location.
            POLICY_UNSPECIFIED (197974922):
                No description available.
            SPECIFIC_REGIONS (454128082):
                Only allowlisted regions will be able to
                restore region scoped snapshots
        """
        UNDEFINED_POLICY = 0
        ALL_REGIONS = 273143585
        POLICY_UNSPECIFIED = 197974922
        SPECIFIC_REGIONS = 454128082

    locations: MutableMapping[
        str, "SnapshotSettingsAccessLocationAccessLocationPreference"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=413423454,
        message="SnapshotSettingsAccessLocationAccessLocationPreference",
    )
    policy: str = proto.Field(
        proto.STRING,
        number=91071794,
        optional=True,
    )


class SnapshotSettingsAccessLocationAccessLocationPreference(proto.Message):
    r"""A structure for specifying an allowed target region.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        region (str):
            Accessible region name

            This field is a member of `oneof`_ ``_region``.
    """

    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )


class SnapshotSettingsStorageLocationSettings(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        locations (MutableMapping[str, google.cloud.compute_v1beta.types.SnapshotSettingsStorageLocationSettingsStorageLocationPreference]):
            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.
        policy (str):
            The chosen location policy.
            Check the Policy enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_policy``.
    """

    class Policy(proto.Enum):
        r"""The chosen location policy.

        Values:
            UNDEFINED_POLICY (0):
                A value indicating that the enum field is not
                set.
            LOCAL_REGION (403535464):
                Store snapshot in the same region as with the
                originating disk. No additional parameters are
                needed.
            NEAREST_MULTI_REGION (212467515):
                Store snapshot in the nearest multi region
                Cloud Storage bucket, relative to the
                originating disk. No additional parameters are
                needed.
            SPECIFIC_LOCATIONS (280093809):
                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 (250644592):
                No description available.
        """
        UNDEFINED_POLICY = 0
        LOCAL_REGION = 403535464
        NEAREST_MULTI_REGION = 212467515
        SPECIFIC_LOCATIONS = 280093809
        STORAGE_LOCATION_POLICY_UNSPECIFIED = 250644592

    locations: MutableMapping[
        str, "SnapshotSettingsStorageLocationSettingsStorageLocationPreference"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=413423454,
        message="SnapshotSettingsStorageLocationSettingsStorageLocationPreference",
    )
    policy: str = proto.Field(
        proto.STRING,
        number=91071794,
        optional=True,
    )


class SnapshotSettingsStorageLocationSettingsStorageLocationPreference(proto.Message):
    r"""A structure for specifying storage locations.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Name of the location. It should be one of the
            Cloud Storage buckets. Only one location can be
            specified.

            This field is a member of `oneof`_ ``_name``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )


class SnapshotsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        snapshots (MutableSequence[google.cloud.compute_v1beta.types.Snapshot]):
            [Output Only] A list of snapshots contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of snapshots when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    snapshots: MutableSequence["Snapshot"] = proto.RepeatedField(
        proto.MESSAGE,
        number=241165103,
        message="Snapshot",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SourceDiskEncryptionKey(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_encryption_key (google.cloud.compute_v1beta.types.CustomerEncryptionKey):
            The customer-supplied encryption key of the
            source disk. Required if the source disk is
            protected by a customer-supplied encryption key.

            This field is a member of `oneof`_ ``_disk_encryption_key``.
        source_disk (str):
            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

            This field is a member of `oneof`_ ``_source_disk``.
    """

    disk_encryption_key: "CustomerEncryptionKey" = proto.Field(
        proto.MESSAGE,
        number=271660677,
        optional=True,
        message="CustomerEncryptionKey",
    )
    source_disk: str = proto.Field(
        proto.STRING,
        number=451753793,
        optional=True,
    )


class SourceInstanceParams(proto.Message):
    r"""A specification of the parameters to use when creating the
    instance template from a source instance.

    Attributes:
        disk_configs (MutableSequence[google.cloud.compute_v1beta.types.DiskInstantiationConfig]):
            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.
    """

    disk_configs: MutableSequence["DiskInstantiationConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=235580623,
        message="DiskInstantiationConfig",
    )


class SourceInstanceProperties(proto.Message):
    r"""DEPRECATED: Please use compute#instanceProperties instead.
    New properties will not be added to this field.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        can_ip_forward (bool):
            Enables instances created based on this
            machine image to send packets with source IP
            addresses other than their own and receive
            packets with destination IP addresses other than
            their own. If these instances will be used as an
            IP gateway or it will be set as the next-hop in
            a Route resource, specify true. If unsure, leave
            this set to false. See the Enable IP forwarding
            documentation for more information.

            This field is a member of `oneof`_ ``_can_ip_forward``.
        deletion_protection (bool):
            Whether the instance created from this
            machine image should be protected against
            deletion.

            This field is a member of `oneof`_ ``_deletion_protection``.
        description (str):
            An optional text description for the
            instances that are created from this machine
            image.

            This field is a member of `oneof`_ ``_description``.
        disks (MutableSequence[google.cloud.compute_v1beta.types.SavedAttachedDisk]):
            An array of disks that are associated with
            the instances that are created from this machine
            image.
        guest_accelerators (MutableSequence[google.cloud.compute_v1beta.types.AcceleratorConfig]):
            A list of guest accelerator cards' type and
            count to use for instances created from this
            machine image.
        key_revocation_action_type (str):
            KeyRevocationActionType of the instance.
            Supported options are "STOP" and "NONE". The
            default value is "NONE" if it is not specified.
            Check the KeyRevocationActionType enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_key_revocation_action_type``.
        labels (MutableMapping[str, str]):
            Labels to apply to instances that are created
            from this machine image.
        machine_type (str):
            The machine type to use for instances that
            are created from this machine image.

            This field is a member of `oneof`_ ``_machine_type``.
        metadata (google.cloud.compute_v1beta.types.Metadata):
            The metadata key/value pairs to assign to
            instances that are created from this machine
            image. These pairs can consist of custom
            metadata or predefined keys. See Project and
            instance metadata for more information.

            This field is a member of `oneof`_ ``_metadata``.
        min_cpu_platform (str):
            Minimum cpu/platform to be used by instances
            created from this machine image. The instance
            may be scheduled on the specified or newer
            cpu/platform. Applicable values are the friendly
            names of CPU platforms, such as minCpuPlatform:
            "Intel Haswell" or minCpuPlatform: "Intel Sandy
            Bridge". For more information, read Specifying a
            Minimum CPU Platform.

            This field is a member of `oneof`_ ``_min_cpu_platform``.
        network_interfaces (MutableSequence[google.cloud.compute_v1beta.types.NetworkInterface]):
            An array of network access configurations for
            this interface.
        post_key_revocation_action_type (str):
            PostKeyRevocationActionType of the instance.
            Check the PostKeyRevocationActionType enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_post_key_revocation_action_type``.
        scheduling (google.cloud.compute_v1beta.types.Scheduling):
            Specifies the scheduling options for the
            instances that are created from this machine
            image.

            This field is a member of `oneof`_ ``_scheduling``.
        service_accounts (MutableSequence[google.cloud.compute_v1beta.types.ServiceAccount]):
            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.
        tags (google.cloud.compute_v1beta.types.Tags):
            A list of tags to apply to the instances that
            are created from this machine image. The tags
            identify valid sources or targets for network
            firewalls. The setTags method can modify this
            list of tags. Each tag within the list must
            comply with RFC1035.

            This field is a member of `oneof`_ ``_tags``.
    """

    class KeyRevocationActionType(proto.Enum):
        r"""KeyRevocationActionType of the instance. Supported options
        are "STOP" and "NONE". The default value is "NONE" if it is not
        specified.

        Values:
            UNDEFINED_KEY_REVOCATION_ACTION_TYPE (0):
                A value indicating that the enum field is not
                set.
            KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED (467110106):
                Default value. This value is unused.
            NONE (2402104):
                Indicates user chose no operation.
            STOP (2555906):
                Indicates user chose to opt for VM shutdown
                on key revocation.
        """
        UNDEFINED_KEY_REVOCATION_ACTION_TYPE = 0
        KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 467110106
        NONE = 2402104
        STOP = 2555906

    class PostKeyRevocationActionType(proto.Enum):
        r"""PostKeyRevocationActionType of the instance.

        Values:
            UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE (0):
                A value indicating that the enum field is not
                set.
            NOOP (2402146):
                Indicates user chose no operation.
            POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED (228738393):
                Default value. This value is unused.
            SHUTDOWN (76412502):
                Indicates user chose to opt for VM shutdown
                on key revocation.
        """
        UNDEFINED_POST_KEY_REVOCATION_ACTION_TYPE = 0
        NOOP = 2402146
        POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 228738393
        SHUTDOWN = 76412502

    can_ip_forward: bool = proto.Field(
        proto.BOOL,
        number=467731324,
        optional=True,
    )
    deletion_protection: bool = proto.Field(
        proto.BOOL,
        number=458014698,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    disks: MutableSequence["SavedAttachedDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=95594102,
        message="SavedAttachedDisk",
    )
    guest_accelerators: MutableSequence["AcceleratorConfig"] = proto.RepeatedField(
        proto.MESSAGE,
        number=463595119,
        message="AcceleratorConfig",
    )
    key_revocation_action_type: str = proto.Field(
        proto.STRING,
        number=235941474,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    machine_type: str = proto.Field(
        proto.STRING,
        number=227711026,
        optional=True,
    )
    metadata: "Metadata" = proto.Field(
        proto.MESSAGE,
        number=86866735,
        optional=True,
        message="Metadata",
    )
    min_cpu_platform: str = proto.Field(
        proto.STRING,
        number=242912759,
        optional=True,
    )
    network_interfaces: MutableSequence["NetworkInterface"] = proto.RepeatedField(
        proto.MESSAGE,
        number=52735243,
        message="NetworkInterface",
    )
    post_key_revocation_action_type: str = proto.Field(
        proto.STRING,
        number=292972897,
        optional=True,
    )
    scheduling: "Scheduling" = proto.Field(
        proto.MESSAGE,
        number=386688404,
        optional=True,
        message="Scheduling",
    )
    service_accounts: MutableSequence["ServiceAccount"] = proto.RepeatedField(
        proto.MESSAGE,
        number=277537328,
        message="ServiceAccount",
    )
    tags: "Tags" = proto.Field(
        proto.MESSAGE,
        number=3552281,
        optional=True,
        message="Tags",
    )


class SslCertificate(proto.Message):
    r"""Represents an SSL certificate resource. Google Compute Engine has
    two SSL certificate resources: \*
    `Global </compute/docs/reference/rest/beta/sslCertificates>`__ \*
    `Regional </compute/docs/reference/rest/beta/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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        certificate (str):
            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.

            This field is a member of `oneof`_ ``_certificate``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        expire_time (str):
            [Output Only] Expire time of the certificate. RFC3339

            This field is a member of `oneof`_ ``_expire_time``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#sslCertificate for SSL certificates.

            This field is a member of `oneof`_ ``_kind``.
        managed (google.cloud.compute_v1beta.types.SslCertificateManagedSslCertificate):
            Configuration and status of a managed SSL
            certificate.

            This field is a member of `oneof`_ ``_managed``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        private_key (str):
            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.

            This field is a member of `oneof`_ ``_private_key``.
        region (str):
            [Output Only] URL of the region where the regional SSL
            Certificate resides. This field is not applicable to global
            SSL Certificate.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_managed (google.cloud.compute_v1beta.types.SslCertificateSelfManagedSslCertificate):
            Configuration and status of a self-managed
            SSL certificate.

            This field is a member of `oneof`_ ``_self_managed``.
        subject_alternative_names (MutableSequence[str]):
            [Output Only] Domains associated with the certificate via
            Subject Alternative Name.
        type_ (str):
            (Optional) Specifies the type of SSL certificate, either
            "SELF_MANAGED" or "MANAGED". If not specified, the
            certificate is self-managed and the fields certificate and
            private_key are used. Check the Type enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""(Optional) Specifies the type of SSL certificate, either
        "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
        self-managed and the fields certificate and private_key are used.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            MANAGED (479501183):
                Google-managed SSLCertificate.
            SELF_MANAGED (434437516):
                Certificate uploaded by user.
            TYPE_UNSPECIFIED (437714322):
                No description available.
        """
        UNDEFINED_TYPE = 0
        MANAGED = 479501183
        SELF_MANAGED = 434437516
        TYPE_UNSPECIFIED = 437714322

    certificate: str = proto.Field(
        proto.STRING,
        number=341787031,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    expire_time: str = proto.Field(
        proto.STRING,
        number=440691181,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    managed: "SslCertificateManagedSslCertificate" = proto.Field(
        proto.MESSAGE,
        number=298389407,
        optional=True,
        message="SslCertificateManagedSslCertificate",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    private_key: str = proto.Field(
        proto.STRING,
        number=361331107,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_managed: "SslCertificateSelfManagedSslCertificate" = proto.Field(
        proto.MESSAGE,
        number=329284012,
        optional=True,
        message="SslCertificateSelfManagedSslCertificate",
    )
    subject_alternative_names: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=528807907,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class SslCertificateAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.SslCertificatesScopedList]):
            A list of SslCertificatesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#sslCertificateAggregatedList for lists of SSL
            Certificates.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "SslCertificatesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="SslCertificatesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SslCertificateList(proto.Message):
    r"""Contains a list of SslCertificate resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.SslCertificate]):
            A list of SslCertificate resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["SslCertificate"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="SslCertificate",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SslCertificateManagedSslCertificate(proto.Message):
    r"""Configuration and status of a managed SSL certificate.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        domain_status (MutableMapping[str, str]):
            [Output only] Detailed statuses of the domains specified for
            managed certificate resource.
        domains (MutableSequence[str]):
            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>`__.
        status (str):
            [Output only] Status of the managed certificate resource.
            Check the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
    """

    class Status(proto.Enum):
        r"""[Output only] Status of the managed certificate resource.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                The certificate management is working, and a
                certificate has been provisioned.
            MANAGED_CERTIFICATE_STATUS_UNSPECIFIED (474800850):
                No description available.
            PROVISIONING (290896621):
                The certificate management is working. GCP
                will attempt to provision the first certificate.
            PROVISIONING_FAILED (76813775):
                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 (275036203):
                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 (434659076):
                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.
        """
        UNDEFINED_STATUS = 0
        ACTIVE = 314733318
        MANAGED_CERTIFICATE_STATUS_UNSPECIFIED = 474800850
        PROVISIONING = 290896621
        PROVISIONING_FAILED = 76813775
        PROVISIONING_FAILED_PERMANENTLY = 275036203
        RENEWAL_FAILED = 434659076

    domain_status: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=360305613,
    )
    domains: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=226935855,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )


class SslCertificateSelfManagedSslCertificate(proto.Message):
    r"""Configuration and status of a self-managed SSL certificate.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        certificate (str):
            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.

            This field is a member of `oneof`_ ``_certificate``.
        private_key (str):
            A write-only private key in PEM format. Only
            insert requests will include this field.

            This field is a member of `oneof`_ ``_private_key``.
    """

    certificate: str = proto.Field(
        proto.STRING,
        number=341787031,
        optional=True,
    )
    private_key: str = proto.Field(
        proto.STRING,
        number=361331107,
        optional=True,
    )


class SslCertificatesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ssl_certificates (MutableSequence[google.cloud.compute_v1beta.types.SslCertificate]):
            List of SslCertificates contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of backend services when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    ssl_certificates: MutableSequence["SslCertificate"] = proto.RepeatedField(
        proto.MESSAGE,
        number=366006543,
        message="SslCertificate",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SslPoliciesAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.SslPoliciesScopedList]):
            A list of SslPoliciesScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#sslPolicyAggregatedList for lists of SSL Policies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "SslPoliciesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="SslPoliciesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SslPoliciesList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.SslPolicy]):
            A list of SslPolicy resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#sslPoliciesList for lists of sslPolicies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["SslPolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="SslPolicy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SslPoliciesListAvailableFeaturesResponse(proto.Message):
    r"""

    Attributes:
        features (MutableSequence[str]):

    """

    features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=246211645,
    )


class SslPoliciesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ssl_policies (MutableSequence[google.cloud.compute_v1beta.types.SslPolicy]):
            A list of SslPolicies contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of SSL policies when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    ssl_policies: MutableSequence["SslPolicy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=209941027,
        message="SslPolicy",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SslPolicy(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        custom_features (MutableSequence[str]):
            A list of features enabled when the selected
            profile is CUSTOM. The method returns the set of
            features that can be specified in this list.
            This field must be empty if the profile is not
            CUSTOM.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        enabled_features (MutableSequence[str]):
            [Output Only] The list of features enabled in the SSL
            policy.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output only] Type of the resource. Always
            compute#sslPolicyfor SSL policies.

            This field is a member of `oneof`_ ``_kind``.
        min_tls_version (str):
            The minimum version of SSL protocol that can be used by the
            clients to establish a connection with the load balancer.
            This can be one of TLS_1_0, TLS_1_1, TLS_1_2. Check the
            MinTlsVersion enum for the list of possible values.

            This field is a member of `oneof`_ ``_min_tls_version``.
        name (str):
            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.

            This field is a member of `oneof`_ ``_name``.
        profile (str):
            Profile specifies the set of SSL features
            that can be used by the load balancer when
            negotiating SSL with clients. This can be one of
            COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If
            using CUSTOM, the set of SSL features to enable
            must be specified in the customFeatures field.
            Check the Profile enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_profile``.
        region (str):
            [Output Only] URL of the region where the regional SSL
            policy resides. This field is not applicable to global SSL
            policies.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        warnings (MutableSequence[google.cloud.compute_v1beta.types.Warnings]):
            [Output Only] If potential misconfigurations are detected
            for this SSL policy, this field will be populated with
            warning messages.
    """

    class MinTlsVersion(proto.Enum):
        r"""The minimum version of SSL protocol that can be used by the clients
        to establish a connection with the load balancer. This can be one of
        TLS_1_0, TLS_1_1, TLS_1_2.

        Values:
            UNDEFINED_MIN_TLS_VERSION (0):
                A value indicating that the enum field is not
                set.
            TLS_1_0 (33116734):
                TLS 1.0
            TLS_1_1 (33116735):
                TLS 1.1
            TLS_1_2 (33116736):
                TLS 1.2
        """
        UNDEFINED_MIN_TLS_VERSION = 0
        TLS_1_0 = 33116734
        TLS_1_1 = 33116735
        TLS_1_2 = 33116736

    class Profile(proto.Enum):
        r"""Profile specifies the set of SSL features that can be used by
        the load balancer when negotiating SSL with clients. This can be
        one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using
        CUSTOM, the set of SSL features to enable must be specified in
        the customFeatures field.

        Values:
            UNDEFINED_PROFILE (0):
                A value indicating that the enum field is not
                set.
            COMPATIBLE (179357396):
                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 (388595569):
                Custom profile. Allow only the set of allowed
                SSL features specified in the customFeatures
                field.
            MODERN (132013855):
                Modern profile. Supports a wide set of SSL
                features, allowing modern clients to negotiate
                SSL with the load balancer.
            RESTRICTED (261551195):
                Restricted profile. Supports a reduced set of
                SSL features, intended to meet stricter
                compliance requirements.
        """
        UNDEFINED_PROFILE = 0
        COMPATIBLE = 179357396
        CUSTOM = 388595569
        MODERN = 132013855
        RESTRICTED = 261551195

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    custom_features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=34789707,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    enabled_features: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=469017467,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    min_tls_version: str = proto.Field(
        proto.STRING,
        number=8155943,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    profile: str = proto.Field(
        proto.STRING,
        number=227445161,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warnings: MutableSequence["Warnings"] = proto.RepeatedField(
        proto.MESSAGE,
        number=498091095,
        message="Warnings",
    )


class SslPolicyReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ssl_policy (str):
            URL of the SSL policy resource. Set this to
            empty string to clear any existing SSL policy
            associated with the target proxy resource.

            This field is a member of `oneof`_ ``_ssl_policy``.
    """

    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
        optional=True,
    )


class StartAsyncReplicationDiskRequest(proto.Message):
    r"""A request message for Disks.StartAsyncReplication. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The name of the persistent disk.
        disks_start_async_replication_request_resource (google.cloud.compute_v1beta.types.DisksStartAsyncReplicationRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    disks_start_async_replication_request_resource: "DisksStartAsyncReplicationRequest" = proto.Field(
        proto.MESSAGE,
        number=470814554,
        message="DisksStartAsyncReplicationRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StartAsyncReplicationRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.StartAsyncReplication. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The name of the persistent disk.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        region_disks_start_async_replication_request_resource (google.cloud.compute_v1beta.types.RegionDisksStartAsyncReplicationRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_disks_start_async_replication_request_resource: "RegionDisksStartAsyncReplicationRequest" = proto.Field(
        proto.MESSAGE,
        number=474326021,
        message="RegionDisksStartAsyncReplicationRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class StartInstanceRequest(proto.Message):
    r"""A request message for Instances.Start. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance resource to start.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StartInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.StartInstances.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_start_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersStartInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_start_instances_request_resource: "InstanceGroupManagersStartInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=261083819,
        message="InstanceGroupManagersStartInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StartInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.StartInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_start_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersStartInstancesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_start_instances_request_resource: "RegionInstanceGroupManagersStartInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=497012118,
        message="RegionInstanceGroupManagersStartInstancesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class StartWithEncryptionKeyInstanceRequest(proto.Message):
    r"""A request message for Instances.StartWithEncryptionKey. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance resource to start.
        instances_start_with_encryption_key_request_resource (google.cloud.compute_v1beta.types.InstancesStartWithEncryptionKeyRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instances_start_with_encryption_key_request_resource: "InstancesStartWithEncryptionKeyRequest" = proto.Field(
        proto.MESSAGE,
        number=441712511,
        message="InstancesStartWithEncryptionKeyRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StatefulPolicy(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        preserved_state (google.cloud.compute_v1beta.types.StatefulPolicyPreservedState):

            This field is a member of `oneof`_ ``_preserved_state``.
    """

    preserved_state: "StatefulPolicyPreservedState" = proto.Field(
        proto.MESSAGE,
        number=2634026,
        optional=True,
        message="StatefulPolicyPreservedState",
    )


class StatefulPolicyPreservedState(proto.Message):
    r"""Configuration of preserved resources.

    Attributes:
        disks (MutableMapping[str, google.cloud.compute_v1beta.types.StatefulPolicyPreservedStateDiskDevice]):
            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.
        external_i_ps (MutableMapping[str, google.cloud.compute_v1beta.types.StatefulPolicyPreservedStateNetworkIp]):
            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.
        internal_i_ps (MutableMapping[str, google.cloud.compute_v1beta.types.StatefulPolicyPreservedStateNetworkIp]):
            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.
    """

    disks: MutableMapping[
        str, "StatefulPolicyPreservedStateDiskDevice"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=95594102,
        message="StatefulPolicyPreservedStateDiskDevice",
    )
    external_i_ps: MutableMapping[
        str, "StatefulPolicyPreservedStateNetworkIp"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=532687245,
        message="StatefulPolicyPreservedStateNetworkIp",
    )
    internal_i_ps: MutableMapping[
        str, "StatefulPolicyPreservedStateNetworkIp"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=215731675,
        message="StatefulPolicyPreservedStateNetworkIp",
    )


class StatefulPolicyPreservedStateDiskDevice(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_delete (str):
            These stateful disks will never be deleted during
            autohealing, update or VM instance recreate operations. This
            flag is used to configure if the disk should be deleted
            after it is no longer used by the group, e.g. when the given
            instance or the whole group is deleted. Note: disks attached
            in READ_ONLY mode cannot be auto-deleted. Check the
            AutoDelete enum for the list of possible values.

            This field is a member of `oneof`_ ``_auto_delete``.
    """

    class AutoDelete(proto.Enum):
        r"""These stateful disks will never be deleted during autohealing,
        update or VM instance recreate operations. This flag is used to
        configure if the disk should be deleted after it is no longer used
        by the group, e.g. when the given instance or the whole group is
        deleted. Note: disks attached in READ_ONLY mode cannot be
        auto-deleted.

        Values:
            UNDEFINED_AUTO_DELETE (0):
                A value indicating that the enum field is not
                set.
            NEVER (74175084):
                No description available.
            ON_PERMANENT_INSTANCE_DELETION (95727719):
                No description available.
        """
        UNDEFINED_AUTO_DELETE = 0
        NEVER = 74175084
        ON_PERMANENT_INSTANCE_DELETION = 95727719

    auto_delete: str = proto.Field(
        proto.STRING,
        number=464761403,
        optional=True,
    )


class StatefulPolicyPreservedStateNetworkIp(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        auto_delete (str):
            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. Check the AutoDelete enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_auto_delete``.
    """

    class AutoDelete(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_AUTO_DELETE (0):
                A value indicating that the enum field is not
                set.
            NEVER (74175084):
                No description available.
            ON_PERMANENT_INSTANCE_DELETION (95727719):
                No description available.
        """
        UNDEFINED_AUTO_DELETE = 0
        NEVER = 74175084
        ON_PERMANENT_INSTANCE_DELETION = 95727719

    auto_delete: str = proto.Field(
        proto.STRING,
        number=464761403,
        optional=True,
    )


class Status(proto.Message):
    r"""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>`__.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (int):
            The status code, which should be an enum
            value of google.rpc.Code.

            This field is a member of `oneof`_ ``_code``.
        details (MutableSequence[google.protobuf.any_pb2.Any]):
            A list of messages that carry the error
            details. There is a common set of message types
            for APIs to use.
        message (str):
            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.

            This field is a member of `oneof`_ ``_message``.
    """

    code: int = proto.Field(
        proto.INT32,
        number=3059181,
        optional=True,
    )
    details: MutableSequence[any_pb2.Any] = proto.RepeatedField(
        proto.MESSAGE,
        number=483979842,
        message=any_pb2.Any,
    )
    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )


class StopAsyncReplicationDiskRequest(proto.Message):
    r"""A request message for Disks.StopAsyncReplication. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The name of the persistent disk.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StopAsyncReplicationRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.StopAsyncReplication. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The name of the persistent disk.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class StopGroupAsyncReplicationDiskRequest(proto.Message):
    r"""A request message for Disks.StopGroupAsyncReplication. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disks_stop_group_async_replication_resource_resource (google.cloud.compute_v1beta.types.DisksStopGroupAsyncReplicationResource):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request. This
            must be the zone of the primary or secondary
            disks in the consistency group.
    """

    disks_stop_group_async_replication_resource_resource: "DisksStopGroupAsyncReplicationResource" = proto.Field(
        proto.MESSAGE,
        number=346815509,
        message="DisksStopGroupAsyncReplicationResource",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StopGroupAsyncReplicationRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.StopGroupAsyncReplication.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disks_stop_group_async_replication_resource_resource (google.cloud.compute_v1beta.types.DisksStopGroupAsyncReplicationResource):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request. This
            must be the region of the primary or secondary
            disks in the consistency group.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    disks_stop_group_async_replication_resource_resource: "DisksStopGroupAsyncReplicationResource" = proto.Field(
        proto.MESSAGE,
        number=346815509,
        message="DisksStopGroupAsyncReplicationResource",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class StopInstanceRequest(proto.Message):
    r"""A request message for Instances.Stop. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        discard_local_ssd (bool):
            This property is required if the instance has
            any attached Local SSD disks. If false, Local
            SSD data will be preserved when the instance is
            suspended. If true, the contents of any attached
            Local SSD disks will be discarded.

            This field is a member of `oneof`_ ``_discard_local_ssd``.
        instance (str):
            Name of the instance resource to stop.
        no_graceful_shutdown (bool):
            If set to true, Graceful Shutdown is skipped.

            This field is a member of `oneof`_ ``_no_graceful_shutdown``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    discard_local_ssd: bool = proto.Field(
        proto.BOOL,
        number=319517903,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    no_graceful_shutdown: bool = proto.Field(
        proto.BOOL,
        number=336255890,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StopInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.StopInstances.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_stop_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersStopInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_stop_instances_request_resource: "InstanceGroupManagersStopInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=37556877,
        message="InstanceGroupManagersStopInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class StopInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.StopInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_stop_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersStopInstancesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_stop_instances_request_resource: "RegionInstanceGroupManagersStopInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=270306882,
        message="RegionInstanceGroupManagersStopInstancesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class StoragePool(proto.Message):
    r"""Represents a zonal storage pool resource.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        capacity_provisioning_type (str):
            Provisioning type of the byte capacity of the
            pool. Check the CapacityProvisioningType enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_capacity_provisioning_type``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#storagePool for storage pools.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this storage pool, which is essentially a hash
            of the labels set used for optimistic locking.
            The fingerprint is initially generated by
            Compute Engine and changes after every request
            to modify or update labels. You must always
            provide an up-to-date fingerprint hash in order
            to update or change labels, otherwise the
            request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve a storage pool.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels to apply to this storage pool. These
            can be later modified by the setLabels method.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        performance_provisioning_type (str):
            Provisioning type of the performance-related
            parameters of the pool, such as throughput and
            IOPS. Check the PerformanceProvisioningType enum
            for the list of possible values.

            This field is a member of `oneof`_ ``_performance_provisioning_type``.
        pool_provisioned_capacity_gb (int):
            Size, in GiB, of the storage pool. For more
            information about the size limits, see
            https://cloud.google.com/compute/docs/disks/storage-pools.

            This field is a member of `oneof`_ ``_pool_provisioned_capacity_gb``.
        pool_provisioned_iops (int):
            Provisioned IOPS of the storage pool. Only
            relevant if the storage pool type is
            hyperdisk-balanced.

            This field is a member of `oneof`_ ``_pool_provisioned_iops``.
        pool_provisioned_throughput (int):
            Provisioned throughput of the storage pool.
            Only relevant if the storage pool type is
            hyperdisk-balanced or hyperdisk-throughput.

            This field is a member of `oneof`_ ``_pool_provisioned_throughput``.
        resource_status (google.cloud.compute_v1beta.types.StoragePoolResourceStatus):
            [Output Only] Status information for the storage pool
            resource.

            This field is a member of `oneof`_ ``_resource_status``.
        self_link (str):
            [Output Only] Server-defined fully-qualified URL for this
            resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource's
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        state (str):
            [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.
            Check the State enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
        status (google.cloud.compute_v1beta.types.StoragePoolResourceStatus):
            [Output Only] Status information for the storage pool
            resource.

            This field is a member of `oneof`_ ``_status``.
        storage_pool_type (str):
            Type of the storage pool.

            This field is a member of `oneof`_ ``_storage_pool_type``.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    class CapacityProvisioningType(proto.Enum):
        r"""Provisioning type of the byte capacity of the pool.
        Additional supported values which may be not listed in the enum
        directly due to technical reasons:

        ADVANCED
        STANDARD
        UNSPECIFIED

        Values:
            UNDEFINED_CAPACITY_PROVISIONING_TYPE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_CAPACITY_PROVISIONING_TYPE = 0

    class PerformanceProvisioningType(proto.Enum):
        r"""Provisioning type of the performance-related parameters of
        the pool, such as throughput and IOPS. Additional supported
        values which may be not listed in the enum directly due to
        technical reasons:

        ADVANCED
        STANDARD
        UNSPECIFIED

        Values:
            UNDEFINED_PERFORMANCE_PROVISIONING_TYPE (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_PERFORMANCE_PROVISIONING_TYPE = 0

    class State(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                StoragePool is provisioning
            DELETING (528602024):
                StoragePool is deleting.
            FAILED (455706685):
                StoragePool creation failed.
            READY (77848963):
                StoragePool is ready for use.
        """
        UNDEFINED_STATE = 0
        CREATING = 455564985
        DELETING = 528602024
        FAILED = 455706685
        READY = 77848963

    capacity_provisioning_type: str = proto.Field(
        proto.STRING,
        number=251610375,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    performance_provisioning_type: str = proto.Field(
        proto.STRING,
        number=468553469,
        optional=True,
    )
    pool_provisioned_capacity_gb: int = proto.Field(
        proto.INT64,
        number=478537682,
        optional=True,
    )
    pool_provisioned_iops: int = proto.Field(
        proto.INT64,
        number=112092311,
        optional=True,
    )
    pool_provisioned_throughput: int = proto.Field(
        proto.INT64,
        number=169215640,
        optional=True,
    )
    resource_status: "StoragePoolResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=249429315,
        optional=True,
        message="StoragePoolResourceStatus",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    status: "StoragePoolResourceStatus" = proto.Field(
        proto.MESSAGE,
        number=181260274,
        optional=True,
        message="StoragePoolResourceStatus",
    )
    storage_pool_type: str = proto.Field(
        proto.STRING,
        number=285999289,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class StoragePoolAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.StoragePoolsScopedList]):
            A list of StoragePoolsScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#storagePoolAggregatedList for aggregated lists of
            storage pools.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "StoragePoolsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="StoragePoolsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class StoragePoolDisk(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        attached_instances (MutableSequence[str]):
            [Output Only] Instances this disk is attached to.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        disk (str):
            [Output Only] The URL of the disk.

            This field is a member of `oneof`_ ``_disk``.
        name (str):
            [Output Only] The name of the disk.

            This field is a member of `oneof`_ ``_name``.
        provisioned_iops (int):
            [Output Only] The number of IOPS provisioned for the disk.

            This field is a member of `oneof`_ ``_provisioned_iops``.
        provisioned_throughput (int):
            [Output Only] The throughput provisioned for the disk.

            This field is a member of `oneof`_ ``_provisioned_throughput``.
        resource_policies (MutableSequence[str]):
            [Output Only] Resource policies applied to disk for
            automatic snapshot creations.
        size_gb (int):
            [Output Only] The disk size, in GB.

            This field is a member of `oneof`_ ``_size_gb``.
        status (str):
            [Output Only] The disk status. Check the Status enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_status``.
        type_ (str):
            [Output Only] The disk type.

            This field is a member of `oneof`_ ``_type``.
        used_bytes (int):
            [Output Only] Amount of disk space used.

            This field is a member of `oneof`_ ``_used_bytes``.
    """

    class Status(proto.Enum):
        r"""[Output Only] The disk status.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                Disk is provisioning
            DELETING (528602024):
                Disk is deleting.
            FAILED (455706685):
                Disk creation failed.
            READY (77848963):
                Disk is ready for use.
            RESTORING (404263851):
                Source data is being copied into the disk.
            UNAVAILABLE (413756464):
                Disk is currently unavailable and cannot be
                accessed, attached or detached.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        FAILED = 455706685
        READY = 77848963
        RESTORING = 404263851
        UNAVAILABLE = 413756464

    attached_instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=65255843,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    provisioned_iops: int = proto.Field(
        proto.INT64,
        number=186769108,
        optional=True,
    )
    provisioned_throughput: int = proto.Field(
        proto.INT64,
        number=526524181,
        optional=True,
    )
    resource_policies: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=22220385,
    )
    size_gb: int = proto.Field(
        proto.INT64,
        number=494929369,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    used_bytes: int = proto.Field(
        proto.INT64,
        number=231640425,
        optional=True,
    )


class StoragePoolList(proto.Message):
    r"""A list of StoragePool resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.StoragePool]):
            A list of StoragePool resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#storagePoolList for lists of storagePools.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["StoragePool"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="StoragePool",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class StoragePoolListDisks(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.StoragePoolDisk]):
            A list of StoragePoolDisk resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#storagePoolListDisks for lists of disks in a
            storagePool.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["StoragePoolDisk"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="StoragePoolDisk",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class StoragePoolResourceStatus(proto.Message):
    r"""[Output Only] Contains output only fields.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk_count (int):
            [Output Only] Number of disks used.

            This field is a member of `oneof`_ ``_disk_count``.
        last_resize_timestamp (str):
            [Output Only] Timestamp of the last successful resize in
            RFC3339 text format.

            This field is a member of `oneof`_ ``_last_resize_timestamp``.
        max_total_provisioned_disk_capacity_gb (int):
            [Output Only] Maximum allowed aggregate disk size in
            gigabytes.

            This field is a member of `oneof`_ ``_max_total_provisioned_disk_capacity_gb``.
        pool_used_capacity_bytes (int):
            [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.

            This field is a member of `oneof`_ ``_pool_used_capacity_bytes``.
        pool_used_iops (int):
            [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.

            This field is a member of `oneof`_ ``_pool_used_iops``.
        pool_used_throughput (int):
            [Output Only] Sum of all the disks' provisioned throughput
            in MB/s.

            This field is a member of `oneof`_ ``_pool_used_throughput``.
        pool_user_written_bytes (int):
            [Output Only] Amount of data written into the pool, before
            it is compacted.

            This field is a member of `oneof`_ ``_pool_user_written_bytes``.
        total_provisioned_disk_capacity_gb (int):
            [Output Only] Sum of all the capacity provisioned in disks
            in this storage pool. A disk's provisioned capacity is the
            same as its total capacity.

            This field is a member of `oneof`_ ``_total_provisioned_disk_capacity_gb``.
        total_provisioned_disk_iops (int):
            [Output Only] Sum of all the disks' provisioned IOPS.

            This field is a member of `oneof`_ ``_total_provisioned_disk_iops``.
        total_provisioned_disk_throughput (int):
            [Output Only] Sum of all the disks' provisioned throughput
            in MB/s, minus some amount that is allowed per disk that is
            not counted towards pool's throughput capacity.

            This field is a member of `oneof`_ ``_total_provisioned_disk_throughput``.
    """

    disk_count: int = proto.Field(
        proto.INT64,
        number=182933485,
        optional=True,
    )
    last_resize_timestamp: str = proto.Field(
        proto.STRING,
        number=500825556,
        optional=True,
    )
    max_total_provisioned_disk_capacity_gb: int = proto.Field(
        proto.INT64,
        number=165818207,
        optional=True,
    )
    pool_used_capacity_bytes: int = proto.Field(
        proto.INT64,
        number=510407877,
        optional=True,
    )
    pool_used_iops: int = proto.Field(
        proto.INT64,
        number=99558536,
        optional=True,
    )
    pool_used_throughput: int = proto.Field(
        proto.INT64,
        number=206130633,
        optional=True,
    )
    pool_user_written_bytes: int = proto.Field(
        proto.INT64,
        number=228964050,
        optional=True,
    )
    total_provisioned_disk_capacity_gb: int = proto.Field(
        proto.INT64,
        number=520930980,
        optional=True,
    )
    total_provisioned_disk_iops: int = proto.Field(
        proto.INT64,
        number=32812549,
        optional=True,
    )
    total_provisioned_disk_throughput: int = proto.Field(
        proto.INT64,
        number=447677830,
        optional=True,
    )


class StoragePoolType(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            [Output Only] The deprecation status associated with this
            storage pool type.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            [Output Only] An optional description of this resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#storagePoolType for storage pool types.

            This field is a member of `oneof`_ ``_kind``.
        max_pool_provisioned_capacity_gb (int):
            [Output Only] Maximum storage pool size in GB.

            This field is a member of `oneof`_ ``_max_pool_provisioned_capacity_gb``.
        max_pool_provisioned_iops (int):
            [Output Only] Maximum provisioned IOPS.

            This field is a member of `oneof`_ ``_max_pool_provisioned_iops``.
        max_pool_provisioned_throughput (int):
            [Output Only] Maximum provisioned throughput.

            This field is a member of `oneof`_ ``_max_pool_provisioned_throughput``.
        min_pool_provisioned_capacity_gb (int):
            [Output Only] Minimum storage pool size in GB.

            This field is a member of `oneof`_ ``_min_pool_provisioned_capacity_gb``.
        min_pool_provisioned_iops (int):
            [Output Only] Minimum provisioned IOPS.

            This field is a member of `oneof`_ ``_min_pool_provisioned_iops``.
        min_pool_provisioned_throughput (int):
            [Output Only] Minimum provisioned throughput.

            This field is a member of `oneof`_ ``_min_pool_provisioned_throughput``.
        min_size_gb (int):
            [Deprecated] This field is deprecated. Use
            minPoolProvisionedCapacityGb instead.

            This field is a member of `oneof`_ ``_min_size_gb``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL for this resource with the
            resource id.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        supported_disk_types (MutableSequence[str]):
            [Output Only] The list of disk types supported in this
            storage pool type.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    max_pool_provisioned_capacity_gb: int = proto.Field(
        proto.INT64,
        number=182139085,
        optional=True,
    )
    max_pool_provisioned_iops: int = proto.Field(
        proto.INT64,
        number=515270652,
        optional=True,
    )
    max_pool_provisioned_throughput: int = proto.Field(
        proto.INT64,
        number=228928061,
        optional=True,
    )
    min_pool_provisioned_capacity_gb: int = proto.Field(
        proto.INT64,
        number=191022751,
        optional=True,
    )
    min_pool_provisioned_iops: int = proto.Field(
        proto.INT64,
        number=416473706,
        optional=True,
    )
    min_pool_provisioned_throughput: int = proto.Field(
        proto.INT64,
        number=367761963,
        optional=True,
    )
    min_size_gb: int = proto.Field(
        proto.INT64,
        number=385278188,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    supported_disk_types: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=150587272,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class StoragePoolTypeAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.StoragePoolTypesScopedList]):
            A list of StoragePoolTypesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#storagePoolTypeAggregatedList .

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "StoragePoolTypesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="StoragePoolTypesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class StoragePoolTypeList(proto.Message):
    r"""Contains a list of storage pool types.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.StoragePoolType]):
            A list of StoragePoolType resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#storagePoolTypeList for storage pool types.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["StoragePoolType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="StoragePoolType",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class StoragePoolTypesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        storage_pool_types (MutableSequence[google.cloud.compute_v1beta.types.StoragePoolType]):
            [Output Only] A list of storage pool types contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of storage pool types when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    storage_pool_types: MutableSequence["StoragePoolType"] = proto.RepeatedField(
        proto.MESSAGE,
        number=276043482,
        message="StoragePoolType",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class StoragePoolsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        storage_pools (MutableSequence[google.cloud.compute_v1beta.types.StoragePool]):
            [Output Only] A list of storage pool contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of storage pool when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    storage_pools: MutableSequence["StoragePool"] = proto.RepeatedField(
        proto.MESSAGE,
        number=437258515,
        message="StoragePool",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class StructuredEntries(proto.Message):
    r"""

    Attributes:
        entries (MutableMapping[str, google.protobuf.struct_pb2.Value]):
            Map of a partner metadata that belong to the
            same subdomain. It accepts any value including
            google.protobuf.Struct.
    """

    entries: MutableMapping[str, struct_pb2.Value] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=19039376,
        message=struct_pb2.Value,
    )


class Subnetwork(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        allow_subnet_cidr_routes_overlap (bool):
            Whether this subnetwork's ranges can conflict with existing
            static routes. Setting this to true allows this subnetwork's
            primary and secondary ranges to overlap with (and contain)
            static routes that have already been configured on the
            corresponding network. For example if a static route has
            range 10.1.0.0/16, a subnet range 10.0.0.0/8 could only be
            created if allow_conflicting_routes=true. Overlapping is
            only allowed on subnetwork operations; routes whose ranges
            conflict with this subnetwork's ranges won't be allowed
            unless route.allow_conflicting_subnetworks is set to true.
            Typically packets destined to IPs within the subnetwork
            (which may contain private/sensitive data) are prevented
            from leaving the virtual network. Setting this field to true
            will disable this feature. The default value is false and
            applies to all existing subnetworks and automatically
            created subnetworks. This field cannot be set to true at
            resource creation time.

            This field is a member of `oneof`_ ``_allow_subnet_cidr_routes_overlap``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource. This field can be set only at resource
            creation time.

            This field is a member of `oneof`_ ``_description``.
        enable_flow_logs (bool):
            Whether to enable flow logging for this subnetwork. If this
            field is not explicitly set, it will not appear in get
            listings. If not set the default behavior is determined by
            the org policy, if there is no org policy specified, then it
            will default to disabled. This field isn't supported if the
            subnet purpose field is set to REGIONAL_MANAGED_PROXY.

            This field is a member of `oneof`_ ``_enable_flow_logs``.
        external_ipv6_prefix (str):
            The external IPv6 address range that is owned
            by this subnetwork.

            This field is a member of `oneof`_ ``_external_ipv6_prefix``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        gateway_address (str):
            [Output Only] The gateway address for default routes to
            reach destination addresses outside this subnetwork.

            This field is a member of `oneof`_ ``_gateway_address``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        internal_ipv6_prefix (str):
            The internal IPv6 address range that is owned
            by this subnetwork.

            This field is a member of `oneof`_ ``_internal_ipv6_prefix``.
        ip_cidr_range (str):
            The range of internal addresses that are
            owned by this subnetwork. Provide this property
            when you create the subnetwork. For example,
            10.0.0.0/8 or 100.64.0.0/10. Ranges must be
            unique and non-overlapping within a network.
            Only IPv4 is supported. This field is set at
            resource creation time. The range can be any
            range listed in the Valid ranges list. The range
            can be expanded after creation using
            expandIpCidrRange.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        ip_collection (str):
            Reference to the source of IP, like a PublicDelegatedPrefix
            (PDP) for BYOIP. The PDP must be a sub-PDP in
            EXTERNAL_IPV6_SUBNETWORK_CREATION mode. Use one of the
            following formats to specify a sub-PDP when creating a dual
            stack subnetwork with external access using BYOIP: - Full
            resource URL, as in
            https://www.googleapis.com/compute/v1/projects/projectId/regions/region
            /publicDelegatedPrefixes/sub-pdp-name - Partial URL, as in -
            projects/projectId/regions/region/publicDelegatedPrefixes/
            sub-pdp-name -
            regions/region/publicDelegatedPrefixes/sub-pdp-name

            This field is a member of `oneof`_ ``_ip_collection``.
        ipv6_access_type (str):
            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.
            Check the Ipv6AccessType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_ipv6_access_type``.
        ipv6_cidr_range (str):
            [Output Only] This field is for internal use.

            This field is a member of `oneof`_ ``_ipv6_cidr_range``.
        ipv6_gce_endpoint (str):
            [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. Check the Ipv6GceEndpoint enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_ipv6_gce_endpoint``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#subnetwork for Subnetwork resources.

            This field is a member of `oneof`_ ``_kind``.
        log_config (google.cloud.compute_v1beta.types.SubnetworkLogConfig):
            This field denotes the VPC flow logging
            options for this subnetwork. If logging is
            enabled, logs are exported to Cloud Logging.

            This field is a member of `oneof`_ ``_log_config``.
        name (str):
            The name of the resource, provided by the client when
            initially creating the resource. The name must be 1-63
            characters long, and comply with RFC1035. Specifically, the
            name must be 1-63 characters long and match the regular
            expression ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the
            first character must be a lowercase letter, and all
            following characters must be a dash, lowercase letter, or
            digit, except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            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.

            This field is a member of `oneof`_ ``_network``.
        params (google.cloud.compute_v1beta.types.SubnetworkParams):
            Input only. [Input Only] Additional params passed with the
            request, but not persisted as part of resource payload.

            This field is a member of `oneof`_ ``_params``.
        private_ip_google_access (bool):
            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.

            This field is a member of `oneof`_ ``_private_ip_google_access``.
        private_ipv6_google_access (str):
            This field is for internal use. This field
            can be both set at resource creation time and
            updated using patch. Check the
            PrivateIpv6GoogleAccess enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_private_ipv6_google_access``.
        purpose (str):
            Check the Purpose enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_purpose``.
        region (str):
            URL of the region where the Subnetwork
            resides. This field can be set only at resource
            creation time.

            This field is a member of `oneof`_ ``_region``.
        reserved_internal_range (str):
            The URL of the reserved internal range.

            This field is a member of `oneof`_ ``_reserved_internal_range``.
        role (str):
            The role of subnetwork. Currently, this field is only used
            when purpose is set to GLOBAL_MANAGED_PROXY or
            REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or
            BACKUP. An ACTIVE subnetwork is one that is currently being
            used for Envoy-based load balancers in a region. A BACKUP
            subnetwork is one that is ready to be promoted to ACTIVE or
            is currently draining. This field can be updated with a
            patch request. Check the Role enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_role``.
        secondary_ip_ranges (MutableSequence[google.cloud.compute_v1beta.types.SubnetworkSecondaryRange]):
            An array of configurations for secondary IP
            ranges for VM instances contained in this
            subnetwork. The primary IP of such VM must
            belong to the primary ipCidrRange of the
            subnetwork. The alias IPs may belong to either
            primary or secondary ranges. This field can be
            updated with a patch request.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        stack_type (str):
            The stack type for the subnet. If set to IPV4_ONLY, new VMs
            in the subnet are assigned IPv4 addresses only. If set to
            IPV4_IPV6, new VMs in the subnet can be assigned both IPv4
            and IPv6 addresses. If not specified, IPV4_ONLY is used.
            This field can be both set at resource creation time and
            updated using patch. Check the StackType enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_stack_type``.
        state (str):
            [Output Only] The state of the subnetwork, which can be one
            of the following values: READY: Subnetwork is created and
            ready to use DRAINING: only applicable to subnetworks that
            have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and
            indicates that connections to the load balancer are being
            drained. A subnetwork that is draining cannot be used or
            modified until it reaches a status of READY Check the State
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_state``.
        system_reserved_external_ipv6_ranges (MutableSequence[str]):
            Output only. [Output Only] The array of external IPv6
            network ranges reserved from the subnetwork's external IPv6
            range for system use.
        system_reserved_internal_ipv6_ranges (MutableSequence[str]):
            Output only. [Output Only] The array of internal IPv6
            network ranges reserved from the subnetwork's internal IPv6
            range for system use.
    """

    class Ipv6AccessType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_IPV6_ACCESS_TYPE (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL (35607499):
                VMs on this subnet will be assigned IPv6
                addresses that are accessible via the Internet,
                as well as the VPC network.
            INTERNAL (279295677):
                VMs on this subnet will be assigned IPv6
                addresses that are only accessible over the VPC
                network.
            UNSPECIFIED_IPV6_ACCESS_TYPE (313080613):
                No description available.
        """
        UNDEFINED_IPV6_ACCESS_TYPE = 0
        EXTERNAL = 35607499
        INTERNAL = 279295677
        UNSPECIFIED_IPV6_ACCESS_TYPE = 313080613

    class Ipv6GceEndpoint(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_IPV6_GCE_ENDPOINT (0):
                A value indicating that the enum field is not
                set.
            VM_AND_FR (41830108):
                No description available.
            VM_ONLY (236773428):
                No description available.
        """
        UNDEFINED_IPV6_GCE_ENDPOINT = 0
        VM_AND_FR = 41830108
        VM_ONLY = 236773428

    class PrivateIpv6GoogleAccess(proto.Enum):
        r"""This field is for internal use. This field can be both set at
        resource creation time and updated using patch.

        Values:
            UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS (0):
                A value indicating that the enum field is not
                set.
            DISABLE_GOOGLE_ACCESS (450958579):
                Disable private IPv6 access to/from Google
                services.
            ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE (427975994):
                Bidirectional private IPv6 access to/from
                Google services.
            ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE (288210263):
                Outbound private IPv6 access from VMs in this
                subnet to Google services.
        """
        UNDEFINED_PRIVATE_IPV6_GOOGLE_ACCESS = 0
        DISABLE_GOOGLE_ACCESS = 450958579
        ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 427975994
        ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 288210263

    class Purpose(proto.Enum):
        r"""

        Values:
            UNDEFINED_PURPOSE (0):
                A value indicating that the enum field is not
                set.
            GLOBAL_MANAGED_PROXY (236463602):
                Subnet reserved for Global Envoy-based Load
                Balancing.
            INTERNAL_HTTPS_LOAD_BALANCER (248748889):
                Subnet reserved for Internal HTTP(S) Load Balancing. This is
                a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.
            PEER_MIGRATION (491902225):
                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 (403485027):
                Regular user created or automatically created
                subnet.
            PRIVATE_NAT (367764517):
                Subnetwork used as source range for Private
                NAT Gateways.
            PRIVATE_RFC_1918 (254902107):
                Regular user created or automatically created
                subnet.
            PRIVATE_SERVICE_CONNECT (48134724):
                Subnetworks created for Private Service
                Connect in the producer network.
            REGIONAL_MANAGED_PROXY (153049966):
                Subnetwork used for Regional Envoy-based Load
                Balancing.
        """
        UNDEFINED_PURPOSE = 0
        GLOBAL_MANAGED_PROXY = 236463602
        INTERNAL_HTTPS_LOAD_BALANCER = 248748889
        PEER_MIGRATION = 491902225
        PRIVATE = 403485027
        PRIVATE_NAT = 367764517
        PRIVATE_RFC_1918 = 254902107
        PRIVATE_SERVICE_CONNECT = 48134724
        REGIONAL_MANAGED_PROXY = 153049966

    class Role(proto.Enum):
        r"""The role of subnetwork. Currently, this field is only used when
        purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.
        The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is
        one that is currently being used for Envoy-based load balancers in a
        region. A BACKUP subnetwork is one that is ready to be promoted to
        ACTIVE or is currently draining. This field can be updated with a
        patch request.

        Values:
            UNDEFINED_ROLE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                The ACTIVE subnet that is currently used.
            BACKUP (341010882):
                The BACKUP subnet that could be promoted to
                ACTIVE.
        """
        UNDEFINED_ROLE = 0
        ACTIVE = 314733318
        BACKUP = 341010882

    class StackType(proto.Enum):
        r"""The stack type for the subnet. If set to IPV4_ONLY, new VMs in the
        subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new
        VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If
        not specified, IPV4_ONLY is used. This field can be both set at
        resource creation time and updated using patch.

        Values:
            UNDEFINED_STACK_TYPE (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                New VMs in this subnet can have both IPv4 and
                IPv6 addresses.
            IPV4_ONLY (22373798):
                New VMs in this subnet will only be assigned
                IPv4 addresses.
            IPV6_ONLY (79632100):
                New VMs in this subnet will only be assigned
                IPv6 addresses.
            UNSPECIFIED_STACK_TYPE (298084569):
                No description available.
        """
        UNDEFINED_STACK_TYPE = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798
        IPV6_ONLY = 79632100
        UNSPECIFIED_STACK_TYPE = 298084569

    class State(proto.Enum):
        r"""[Output Only] The state of the subnetwork, which can be one of the
        following values: READY: Subnetwork is created and ready to use
        DRAINING: only applicable to subnetworks that have the purpose set
        to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to
        the load balancer are being drained. A subnetwork that is draining
        cannot be used or modified until it reaches a status of READY

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            DRAINING (480455402):
                Subnetwork is being drained.
            READY (77848963):
                Subnetwork is ready for use.
        """
        UNDEFINED_STATE = 0
        DRAINING = 480455402
        READY = 77848963

    allow_subnet_cidr_routes_overlap: bool = proto.Field(
        proto.BOOL,
        number=67856209,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    enable_flow_logs: bool = proto.Field(
        proto.BOOL,
        number=151544420,
        optional=True,
    )
    external_ipv6_prefix: str = proto.Field(
        proto.STRING,
        number=139299190,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    gateway_address: str = proto.Field(
        proto.STRING,
        number=459867385,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    internal_ipv6_prefix: str = proto.Field(
        proto.STRING,
        number=506270056,
        optional=True,
    )
    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    ip_collection: str = proto.Field(
        proto.STRING,
        number=176818358,
        optional=True,
    )
    ipv6_access_type: str = proto.Field(
        proto.STRING,
        number=504658653,
        optional=True,
    )
    ipv6_cidr_range: str = proto.Field(
        proto.STRING,
        number=273141258,
        optional=True,
    )
    ipv6_gce_endpoint: str = proto.Field(
        proto.STRING,
        number=320382307,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    log_config: "SubnetworkLogConfig" = proto.Field(
        proto.MESSAGE,
        number=351299741,
        optional=True,
        message="SubnetworkLogConfig",
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    params: "SubnetworkParams" = proto.Field(
        proto.MESSAGE,
        number=78313862,
        optional=True,
        message="SubnetworkParams",
    )
    private_ip_google_access: bool = proto.Field(
        proto.BOOL,
        number=421491790,
        optional=True,
    )
    private_ipv6_google_access: str = proto.Field(
        proto.STRING,
        number=48277006,
        optional=True,
    )
    purpose: str = proto.Field(
        proto.STRING,
        number=316407070,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    reserved_internal_range: str = proto.Field(
        proto.STRING,
        number=286248754,
        optional=True,
    )
    role: str = proto.Field(
        proto.STRING,
        number=3506294,
        optional=True,
    )
    secondary_ip_ranges: MutableSequence[
        "SubnetworkSecondaryRange"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=136658915,
        message="SubnetworkSecondaryRange",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    stack_type: str = proto.Field(
        proto.STRING,
        number=425908881,
        optional=True,
    )
    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    system_reserved_external_ipv6_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=65324129,
    )
    system_reserved_internal_ipv6_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=432294995,
    )


class SubnetworkAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.SubnetworksScopedList]):
            A list of SubnetworksScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#subnetworkAggregatedList for aggregated lists of
            subnetworks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "SubnetworksScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="SubnetworksScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SubnetworkList(proto.Message):
    r"""Contains a list of Subnetwork resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Subnetwork]):
            A list of Subnetwork resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#subnetworkList for lists of subnetworks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Subnetwork"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Subnetwork",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SubnetworkLogConfig(proto.Message):
    r"""The available logging options for this subnetwork.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        aggregation_interval (str):
            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. Check the AggregationInterval
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_aggregation_interval``.
        enable (bool):
            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.

            This field is a member of `oneof`_ ``_enable``.
        filter_expr (str):
            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.

            This field is a member of `oneof`_ ``_filter_expr``.
        flow_sampling (float):
            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.

            This field is a member of `oneof`_ ``_flow_sampling``.
        metadata (str):
            Can only be specified if VPC flow logs for this subnetwork
            is enabled. Configures whether all, none or a subset of
            metadata fields should be added to the reported VPC flow
            logs. Default is EXCLUDE_ALL_METADATA. Check the Metadata
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_metadata``.
        metadata_fields (MutableSequence[str]):
            Can only be specified if VPC flow logs for this subnetwork
            is enabled and "metadata" was set to CUSTOM_METADATA.
    """

    class AggregationInterval(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_AGGREGATION_INTERVAL (0):
                A value indicating that the enum field is not
                set.
            INTERVAL_10_MIN (487155916):
                No description available.
            INTERVAL_15_MIN (491773521):
                No description available.
            INTERVAL_1_MIN (69052714):
                No description available.
            INTERVAL_30_SEC (7548937):
                No description available.
            INTERVAL_5_MIN (72746798):
                No description available.
            INTERVAL_5_SEC (72752429):
                No description available.
        """
        UNDEFINED_AGGREGATION_INTERVAL = 0
        INTERVAL_10_MIN = 487155916
        INTERVAL_15_MIN = 491773521
        INTERVAL_1_MIN = 69052714
        INTERVAL_30_SEC = 7548937
        INTERVAL_5_MIN = 72746798
        INTERVAL_5_SEC = 72752429

    class Metadata(proto.Enum):
        r"""Can only be specified if VPC flow logs for this subnetwork is
        enabled. Configures whether all, none or a subset of metadata fields
        should be added to the reported VPC flow logs. Default is
        EXCLUDE_ALL_METADATA.

        Values:
            UNDEFINED_METADATA (0):
                A value indicating that the enum field is not
                set.
            CUSTOM_METADATA (62450749):
                No description available.
            EXCLUDE_ALL_METADATA (334519954):
                No description available.
            INCLUDE_ALL_METADATA (164619908):
                No description available.
        """
        UNDEFINED_METADATA = 0
        CUSTOM_METADATA = 62450749
        EXCLUDE_ALL_METADATA = 334519954
        INCLUDE_ALL_METADATA = 164619908

    aggregation_interval: str = proto.Field(
        proto.STRING,
        number=174919042,
        optional=True,
    )
    enable: bool = proto.Field(
        proto.BOOL,
        number=311764355,
        optional=True,
    )
    filter_expr: str = proto.Field(
        proto.STRING,
        number=183374428,
        optional=True,
    )
    flow_sampling: float = proto.Field(
        proto.FLOAT,
        number=530150360,
        optional=True,
    )
    metadata: str = proto.Field(
        proto.STRING,
        number=86866735,
        optional=True,
    )
    metadata_fields: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=378461641,
    )


class SubnetworkParams(proto.Message):
    r"""Additional subnetwork parameters.

    Attributes:
        resource_manager_tags (MutableMapping[str, str]):
            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.
    """

    resource_manager_tags: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=377671164,
    )


class SubnetworkSecondaryRange(proto.Message):
    r"""Represents a secondary IP range of a subnetwork.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_cidr_range (str):
            The range of IP addresses belonging to this
            subnetwork secondary range. Provide this
            property when you create the subnetwork. Ranges
            must be unique and non-overlapping with all
            primary and secondary IP ranges within a
            network. Only IPv4 is supported. The range can
            be any range listed in the Valid ranges list.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        range_name (str):
            The name associated with this subnetwork
            secondary range, used when adding an alias IP
            range to a VM instance. The name must be 1-63
            characters long, and comply with RFC1035. The
            name must be unique within the subnetwork.

            This field is a member of `oneof`_ ``_range_name``.
        reserved_internal_range (str):
            The URL of the reserved internal range.

            This field is a member of `oneof`_ ``_reserved_internal_range``.
    """

    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    range_name: str = proto.Field(
        proto.STRING,
        number=332216397,
        optional=True,
    )
    reserved_internal_range: str = proto.Field(
        proto.STRING,
        number=286248754,
        optional=True,
    )


class SubnetworksExpandIpCidrRangeRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_cidr_range (str):
            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.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
    """

    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )


class SubnetworksScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        subnetworks (MutableSequence[google.cloud.compute_v1beta.types.Subnetwork]):
            A list of subnetworks contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            An informational warning that appears when
            the list of addresses is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    subnetworks: MutableSequence["Subnetwork"] = proto.RepeatedField(
        proto.MESSAGE,
        number=415853125,
        message="Subnetwork",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SubnetworksScopedWarning(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        scope_name (str):
            Name of the scope containing this set of
            Subnetworks.

            This field is a member of `oneof`_ ``_scope_name``.
        warning (google.cloud.compute_v1beta.types.Warning):
            An informational warning about unreachable
            scope

            This field is a member of `oneof`_ ``_warning``.
    """

    scope_name: str = proto.Field(
        proto.STRING,
        number=345557398,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class SubnetworksSetPrivateIpGoogleAccessRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        private_ip_google_access (bool):

            This field is a member of `oneof`_ ``_private_ip_google_access``.
    """

    private_ip_google_access: bool = proto.Field(
        proto.BOOL,
        number=421491790,
        optional=True,
    )


class Subsetting(proto.Message):
    r"""Subsetting configuration for this BackendService. Currently
    this is applicable only for Internal TCP/UDP load balancing,
    Internal HTTP(S) load balancing and Traffic Director.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        policy (str):
            Check the Policy enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_policy``.
        subset_size (int):
            The number of backends per backend group assigned to each
            proxy instance or each service mesh client. An input
            parameter to the ``CONSISTENT_HASH_SUBSETTING`` algorithm.
            Can only be set if ``policy`` is set to
            ``CONSISTENT_HASH_SUBSETTING``. Can only be set if load
            balancing scheme is ``INTERNAL_MANAGED`` or
            ``INTERNAL_SELF_MANAGED``. ``subset_size`` is optional for
            Internal HTTP(S) load balancing and required for Traffic
            Director. If you do not provide this value, Cloud Load
            Balancing will calculate it dynamically to optimize the
            number of proxies/clients visible to each backend and vice
            versa. Must be greater than 0. If ``subset_size`` is larger
            than the number of backends/endpoints, then subsetting is
            disabled.

            This field is a member of `oneof`_ ``_subset_size``.
    """

    class Policy(proto.Enum):
        r"""

        Values:
            UNDEFINED_POLICY (0):
                A value indicating that the enum field is not
                set.
            CONSISTENT_HASH_SUBSETTING (108989492):
                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 (2402104):
                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.
        """
        UNDEFINED_POLICY = 0
        CONSISTENT_HASH_SUBSETTING = 108989492
        NONE = 2402104

    policy: str = proto.Field(
        proto.STRING,
        number=91071794,
        optional=True,
    )
    subset_size: int = proto.Field(
        proto.INT32,
        number=517916670,
        optional=True,
    )


class SuspendInstanceRequest(proto.Message):
    r"""A request message for Instances.Suspend. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        discard_local_ssd (bool):
            This property is required if the instance has
            any attached Local SSD disks. If false, Local
            SSD data will be preserved when the instance is
            suspended. If true, the contents of any attached
            Local SSD disks will be discarded.

            This field is a member of `oneof`_ ``_discard_local_ssd``.
        instance (str):
            Name of the instance resource to suspend.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    discard_local_ssd: bool = proto.Field(
        proto.BOOL,
        number=319517903,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SuspendInstancesInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.SuspendInstances.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group.
        instance_group_managers_suspend_instances_request_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersSuspendInstancesRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_suspend_instances_request_resource: "InstanceGroupManagersSuspendInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=46679761,
        message="InstanceGroupManagersSuspendInstancesRequest",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class SuspendInstancesRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.SuspendInstances. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            Name of the managed instance group.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_instance_group_managers_suspend_instances_request_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagersSuspendInstancesRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_managers_suspend_instances_request_resource: "RegionInstanceGroupManagersSuspendInstancesRequest" = proto.Field(
        proto.MESSAGE,
        number=214250236,
        message="RegionInstanceGroupManagersSuspendInstancesRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class SwitchToCustomModeNetworkRequest(proto.Message):
    r"""A request message for Networks.SwitchToCustomMode. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network (str):
            Name of the network to be updated.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class TCPHealthCheck(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        port (int):
            The TCP port number to which the health check
            prober sends packets. The default value is 80.
            Valid values are 1 through 65535.

            This field is a member of `oneof`_ ``_port``.
        port_name (str):
            Not supported.

            This field is a member of `oneof`_ ``_port_name``.
        port_specification (str):
            Specifies how a port is selected for health checking. Can be
            one of the following values: USE_FIXED_PORT: Specifies a
            port number explicitly using the port field in the health
            check. Supported by backend services for passthrough load
            balancers and backend services for proxy load balancers. Not
            supported by target pools. The health check supports all
            backends supported by the backend service provided the
            backend can be health checked. For example, GCE_VM_IP
            network endpoint groups, GCE_VM_IP_PORT network endpoint
            groups, and instance group backends. USE_NAMED_PORT: Not
            supported. USE_SERVING_PORT: Provides an indirect method of
            specifying the health check port by referring to the backend
            service. Only supported by backend services for proxy load
            balancers. Not supported by target pools. Not supported by
            backend services for passthrough load balancers. Supports
            all backends that can be health checked; for example,
            GCE_VM_IP_PORT network endpoint groups and instance group
            backends. For GCE_VM_IP_PORT network endpoint group
            backends, the health check uses the port number specified
            for each endpoint in the network endpoint group. For
            instance group backends, the health check uses the port
            number determined by looking up the backend service's named
            port in the instance group's list of named ports. Check the
            PortSpecification enum for the list of possible values.

            This field is a member of `oneof`_ ``_port_specification``.
        proxy_header (str):
            Specifies the type of proxy header to append before sending
            data to the backend, either NONE or PROXY_V1. The default is
            NONE. Check the ProxyHeader enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_proxy_header``.
        request (str):
            Instructs the health check prober to send
            this exact ASCII string, up to 1024 bytes in
            length, after establishing the TCP connection.

            This field is a member of `oneof`_ ``_request``.
        response (str):
            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

            This field is a member of `oneof`_ ``_response``.
    """

    class PortSpecification(proto.Enum):
        r"""Specifies how a port is selected for health checking. Can be one of
        the following values: USE_FIXED_PORT: Specifies a port number
        explicitly using the port field in the health check. Supported by
        backend services for passthrough load balancers and backend services
        for proxy load balancers. Not supported by target pools. The health
        check supports all backends supported by the backend service
        provided the backend can be health checked. For example, GCE_VM_IP
        network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and
        instance group backends. USE_NAMED_PORT: Not supported.
        USE_SERVING_PORT: Provides an indirect method of specifying the
        health check port by referring to the backend service. Only
        supported by backend services for proxy load balancers. Not
        supported by target pools. Not supported by backend services for
        passthrough load balancers. Supports all backends that can be health
        checked; for example, GCE_VM_IP_PORT network endpoint groups and
        instance group backends. For GCE_VM_IP_PORT network endpoint group
        backends, the health check uses the port number specified for each
        endpoint in the network endpoint group. For instance group backends,
        the health check uses the port number determined by looking up the
        backend service's named port in the instance group's list of named
        ports.

        Values:
            UNDEFINED_PORT_SPECIFICATION (0):
                A value indicating that the enum field is not
                set.
            USE_FIXED_PORT (190235748):
                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 (349300671):
                Not supported.
            USE_SERVING_PORT (362637516):
                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.
        """
        UNDEFINED_PORT_SPECIFICATION = 0
        USE_FIXED_PORT = 190235748
        USE_NAMED_PORT = 349300671
        USE_SERVING_PORT = 362637516

    class ProxyHeader(proto.Enum):
        r"""Specifies the type of proxy header to append before sending data to
        the backend, either NONE or PROXY_V1. The default is NONE.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    port: int = proto.Field(
        proto.INT32,
        number=3446913,
        optional=True,
    )
    port_name: str = proto.Field(
        proto.STRING,
        number=41534345,
        optional=True,
    )
    port_specification: str = proto.Field(
        proto.STRING,
        number=51590597,
        optional=True,
    )
    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )
    request: str = proto.Field(
        proto.STRING,
        number=21951119,
        optional=True,
    )
    response: str = proto.Field(
        proto.STRING,
        number=196547649,
        optional=True,
    )


class Tags(proto.Message):
    r"""A set of instance tags.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        items (MutableSequence[str]):
            An array of tags. Each tag must be 1-63
            characters long, and comply with RFC1035.
    """

    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    items: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=100526016,
    )


class TargetGrpcProxy(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#targetGrpcProxy for target grpc proxies.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        self_link_with_id (str):
            [Output Only] Server-defined URL with id for the resource.

            This field is a member of `oneof`_ ``_self_link_with_id``.
        url_map (str):
            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.

            This field is a member of `oneof`_ ``_url_map``.
        validate_for_proxyless (bool):
            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

            This field is a member of `oneof`_ ``_validate_for_proxyless``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    self_link_with_id: str = proto.Field(
        proto.STRING,
        number=44520962,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
        optional=True,
    )
    validate_for_proxyless: bool = proto.Field(
        proto.BOOL,
        number=101822888,
        optional=True,
    )


class TargetGrpcProxyList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetGrpcProxy]):
            A list of TargetGrpcProxy resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#targetGrpcProxy for target grpc proxies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetGrpcProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetGrpcProxy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetHttpProxiesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_http_proxies (MutableSequence[google.cloud.compute_v1beta.types.TargetHttpProxy]):
            A list of TargetHttpProxies contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of backend services when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    target_http_proxies: MutableSequence["TargetHttpProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=162147011,
        message="TargetHttpProxy",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetHttpProxy(proto.Message):
    r"""Represents a Target HTTP Proxy resource. Google Compute Engine has
    two Target HTTP Proxy resources: \*
    `Global </compute/docs/reference/rest/beta/targetHttpProxies>`__ \*
    `Regional </compute/docs/reference/rest/beta/regionTargetHttpProxies>`__
    A target HTTP proxy is a component of Google Cloud HTTP load
    balancers. \* targetHttpProxies are used by global external
    Application Load Balancers, classic Application Load Balancers,
    cross-region internal Application Load Balancers, and Traffic
    Director. \* regionTargetHttpProxies are used by regional internal
    Application Load Balancers and regional external Application Load
    Balancers. Forwarding rules reference a target HTTP proxy, and the
    target proxy then references a URL map. For more information, read
    Using Target Proxies and Forwarding rule concepts.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        http_filters (MutableSequence[str]):
            URLs to networkservices.HttpFilter resources enabled for xDS
            clients using this configuration. For example,
            https://networkservices.googleapis.com/v1alpha1/projects/project/locations/
            locationhttpFilters/httpFilter Only filters that handle
            outbound connection and stream events may be specified.
            These filters work in conjunction with a default set of HTTP
            filters that may already be configured by Traffic Director.
            Traffic Director will determine the final location of these
            filters within xDS configuration based on the name of the
            HTTP filter. If Traffic Director positions multiple filters
            at the same location, those filters will be in the same
            order as specified in this list. httpFilters only applies
            for loadbalancers with loadBalancingScheme set to
            INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
        http_keep_alive_timeout_sec (int):
            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.

            This field is a member of `oneof`_ ``_http_keep_alive_timeout_sec``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetHttpProxy for target HTTP proxies.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        proxy_bind (bool):
            This field only applies when the forwarding rule that
            references this target proxy has a loadBalancingScheme set
            to INTERNAL_SELF_MANAGED. When this field is set to true,
            Envoy proxies set up inbound traffic interception and bind
            to the IP address and port specified in the forwarding rule.
            This is generally useful when using Traffic Director to
            configure Envoy as a gateway or middle proxy (in other
            words, not a sidecar proxy). The Envoy proxy listens for
            inbound requests and handles requests when it receives them.
            The default is false.

            This field is a member of `oneof`_ ``_proxy_bind``.
        region (str):
            [Output Only] URL of the region where the regional Target
            HTTP Proxy resides. This field is not applicable to global
            Target HTTP Proxies.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        url_map (str):
            URL to the UrlMap resource that defines the
            mapping from URL to the BackendService.

            This field is a member of `oneof`_ ``_url_map``.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    http_filters: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=10767172,
    )
    http_keep_alive_timeout_sec: int = proto.Field(
        proto.INT32,
        number=447326046,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    proxy_bind: bool = proto.Field(
        proto.BOOL,
        number=286025582,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
        optional=True,
    )


class TargetHttpProxyAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.TargetHttpProxiesScopedList]):
            A list of TargetHttpProxiesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetHttpProxyAggregatedList for lists of Target
            HTTP Proxies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "TargetHttpProxiesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="TargetHttpProxiesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetHttpProxyList(proto.Message):
    r"""A list of TargetHttpProxy resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetHttpProxy]):
            A list of TargetHttpProxy resources.
        kind (str):
            Type of resource. Always
            compute#targetHttpProxyList for lists of target
            HTTP proxies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetHttpProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetHttpProxy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetHttpsProxiesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_https_proxies (MutableSequence[google.cloud.compute_v1beta.types.TargetHttpsProxy]):
            A list of TargetHttpsProxies contained in
            this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of backend services when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    target_https_proxies: MutableSequence["TargetHttpsProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=366607882,
        message="TargetHttpsProxy",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetHttpsProxiesSetCertificateMapRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        certificate_map (str):
            URL of the Certificate Map to associate with
            this TargetHttpsProxy. Accepted format is
            //certificatemanager.googleapis.com/projects/{project
            }/locations/{location}/certificateMaps/{resourceName}.

            This field is a member of `oneof`_ ``_certificate_map``.
    """

    certificate_map: str = proto.Field(
        proto.STRING,
        number=156463796,
        optional=True,
    )


class TargetHttpsProxiesSetQuicOverrideRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        quic_override (str):
            QUIC policy for the TargetHttpsProxy
            resource. Check the QuicOverride enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_quic_override``.
    """

    class QuicOverride(proto.Enum):
        r"""QUIC policy for the TargetHttpsProxy resource.

        Values:
            UNDEFINED_QUIC_OVERRIDE (0):
                A value indicating that the enum field is not
                set.
            DISABLE (241807048):
                The load balancer will not attempt to
                negotiate QUIC with clients.
            ENABLE (438835587):
                The load balancer will attempt to negotiate
                QUIC with clients.
            NONE (2402104):
                No overrides to the default QUIC policy. This
                option is implicit if no QUIC override has been
                specified in the request.
        """
        UNDEFINED_QUIC_OVERRIDE = 0
        DISABLE = 241807048
        ENABLE = 438835587
        NONE = 2402104

    quic_override: str = proto.Field(
        proto.STRING,
        number=456577197,
        optional=True,
    )


class TargetHttpsProxiesSetSslCertificatesRequest(proto.Message):
    r"""

    Attributes:
        ssl_certificates (MutableSequence[str]):
            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.
    """

    ssl_certificates: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=366006543,
    )


class TargetHttpsProxy(proto.Message):
    r"""Represents a Target HTTPS Proxy resource. Google Compute Engine has
    two Target HTTPS Proxy resources: \*
    `Global </compute/docs/reference/rest/beta/targetHttpsProxies>`__ \*
    `Regional </compute/docs/reference/rest/beta/regionTargetHttpsProxies>`__
    A target HTTPS proxy is a component of Google Cloud HTTPS load
    balancers. \* targetHttpProxies are used by global external
    Application Load Balancers, classic Application Load Balancers,
    cross-region internal Application Load Balancers, and Traffic
    Director. \* regionTargetHttpProxies are used by regional internal
    Application Load Balancers and regional external Application Load
    Balancers. Forwarding rules reference a target HTTPS proxy, and the
    target proxy then references a URL map. For more information, read
    Using Target Proxies and Forwarding rule concepts.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        authentication (str):
            [Deprecated] Use serverTlsPolicy instead.

            This field is a member of `oneof`_ ``_authentication``.
        authorization (str):
            [Deprecated] Use authorizationPolicy instead.

            This field is a member of `oneof`_ ``_authorization``.
        authorization_policy (str):
            Optional. A URL referring to a
            networksecurity.AuthorizationPolicy resource that describes
            how the proxy should authorize inbound traffic. If left
            blank, access will not be restricted by an authorization
            policy. Refer to the AuthorizationPolicy resource for
            additional details. authorizationPolicy only applies to a
            global TargetHttpsProxy attached to globalForwardingRules
            with the loadBalancingScheme set to INTERNAL_SELF_MANAGED.
            Note: This field currently has no impact.

            This field is a member of `oneof`_ ``_authorization_policy``.
        certificate_map (str):
            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}.

            This field is a member of `oneof`_ ``_certificate_map``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        http_filters (MutableSequence[str]):
            URLs to networkservices.HttpFilter resources enabled for xDS
            clients using this configuration. For example,
            https://networkservices.googleapis.com/beta/projects/project/locations/
            location/httpFilters/httpFilter Only filters that handle
            outbound connection and stream events may be specified.
            These filters work in conjunction with a default set of HTTP
            filters that may already be configured by Traffic Director.
            Traffic Director will determine the final location of these
            filters within xDS configuration based on the name of the
            HTTP filter. If Traffic Director positions multiple filters
            at the same location, those filters will be in the same
            order as specified in this list. httpFilters only applies
            for loadbalancers with loadBalancingScheme set to
            INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
        http_keep_alive_timeout_sec (int):
            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.

            This field is a member of `oneof`_ ``_http_keep_alive_timeout_sec``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetHttpsProxy for target HTTPS proxies.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        proxy_bind (bool):
            This field only applies when the forwarding rule that
            references this target proxy has a loadBalancingScheme set
            to INTERNAL_SELF_MANAGED. When this field is set to true,
            Envoy proxies set up inbound traffic interception and bind
            to the IP address and port specified in the forwarding rule.
            This is generally useful when using Traffic Director to
            configure Envoy as a gateway or middle proxy (in other
            words, not a sidecar proxy). The Envoy proxy listens for
            inbound requests and handles requests when it receives them.
            The default is false.

            This field is a member of `oneof`_ ``_proxy_bind``.
        quic_override (str):
            Specifies the QUIC override policy for this
            TargetHttpsProxy resource. This setting
            determines whether the load balancer attempts to
            negotiate QUIC with clients. You can specify
            NONE, ENABLE, or DISABLE. - When quic-override
            is set to NONE, Google manages whether QUIC is
            used. - When quic-override is set to ENABLE, the
            load balancer uses QUIC when possible. - When
            quic-override is set to DISABLE, the load
            balancer doesn't use QUIC. - If the
            quic-override flag is not specified, NONE is
            implied. Check the QuicOverride enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_quic_override``.
        region (str):
            [Output Only] URL of the region where the regional
            TargetHttpsProxy resides. This field is not applicable to
            global TargetHttpsProxies.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        server_tls_policy (str):
            Optional. A URL referring to a
            networksecurity.ServerTlsPolicy resource that describes how
            the proxy should authenticate inbound traffic.
            serverTlsPolicy only applies to a global TargetHttpsProxy
            attached to globalForwardingRules with the
            loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL
            or EXTERNAL_MANAGED or INTERNAL_MANAGED. It also applies to
            a regional TargetHttpsProxy attached to regional
            forwardingRules with the loadBalancingScheme set to
            EXTERNAL_MANAGED or INTERNAL_MANAGED. For details which
            ServerTlsPolicy resources are accepted with
            INTERNAL_SELF_MANAGED and which with EXTERNAL,
            INTERNAL_MANAGED, EXTERNAL_MANAGED loadBalancingScheme
            consult ServerTlsPolicy documentation. If left blank,
            communications are not encrypted.

            This field is a member of `oneof`_ ``_server_tls_policy``.
        ssl_certificates (MutableSequence[str]):
            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}/certificates/{resourceName}. -
            https://certificatemanager.googleapis.com/v1alpha1/projects/{project
            }/locations/{location}/certificates/{resourceName}.
        ssl_policy (str):
            URL of SslPolicy resource that will be
            associated with the TargetHttpsProxy resource.
            If not set, the TargetHttpsProxy resource has no
            SSL policy configured.

            This field is a member of `oneof`_ ``_ssl_policy``.
        tls_early_data (str):
            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. Check the TlsEarlyData enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_tls_early_data``.
        url_map (str):
            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

            This field is a member of `oneof`_ ``_url_map``.
    """

    class QuicOverride(proto.Enum):
        r"""Specifies the QUIC override policy for this TargetHttpsProxy
        resource. This setting determines whether the load balancer
        attempts to negotiate QUIC with clients. You can specify NONE,
        ENABLE, or DISABLE. - When quic-override is set to NONE, Google
        manages whether QUIC is used. - When quic-override is set to
        ENABLE, the load balancer uses QUIC when possible. - When
        quic-override is set to DISABLE, the load balancer doesn't use
        QUIC. - If the quic-override flag is not specified, NONE is
        implied.

        Values:
            UNDEFINED_QUIC_OVERRIDE (0):
                A value indicating that the enum field is not
                set.
            DISABLE (241807048):
                The load balancer will not attempt to
                negotiate QUIC with clients.
            ENABLE (438835587):
                The load balancer will attempt to negotiate
                QUIC with clients.
            NONE (2402104):
                No overrides to the default QUIC policy. This
                option is implicit if no QUIC override has been
                specified in the request.
        """
        UNDEFINED_QUIC_OVERRIDE = 0
        DISABLE = 241807048
        ENABLE = 438835587
        NONE = 2402104

    class TlsEarlyData(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_TLS_EARLY_DATA (0):
                A value indicating that the enum field is not
                set.
            DISABLED (516696700):
                TLS 1.3 Early Data is not advertised, and any
                (invalid) attempts to send Early Data will be
                rejected by closing the connection.
            PERMISSIVE (504345247):
                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 (308826825):
                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 (457266100):
                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.
        """
        UNDEFINED_TLS_EARLY_DATA = 0
        DISABLED = 516696700
        PERMISSIVE = 504345247
        STRICT = 308826825
        UNRESTRICTED = 457266100

    authentication: str = proto.Field(
        proto.STRING,
        number=430432888,
        optional=True,
    )
    authorization: str = proto.Field(
        proto.STRING,
        number=225042553,
        optional=True,
    )
    authorization_policy: str = proto.Field(
        proto.STRING,
        number=33945528,
        optional=True,
    )
    certificate_map: str = proto.Field(
        proto.STRING,
        number=156463796,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    http_filters: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=10767172,
    )
    http_keep_alive_timeout_sec: int = proto.Field(
        proto.INT32,
        number=447326046,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    proxy_bind: bool = proto.Field(
        proto.BOOL,
        number=286025582,
        optional=True,
    )
    quic_override: str = proto.Field(
        proto.STRING,
        number=456577197,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    server_tls_policy: str = proto.Field(
        proto.STRING,
        number=295825266,
        optional=True,
    )
    ssl_certificates: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=366006543,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
        optional=True,
    )
    tls_early_data: str = proto.Field(
        proto.STRING,
        number=61108426,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
        optional=True,
    )


class TargetHttpsProxyAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.TargetHttpsProxiesScopedList]):
            A list of TargetHttpsProxiesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetHttpsProxyAggregatedList for lists of Target
            HTTP Proxies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "TargetHttpsProxiesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="TargetHttpsProxiesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetHttpsProxyList(proto.Message):
    r"""Contains a list of TargetHttpsProxy resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetHttpsProxy]):
            A list of TargetHttpsProxy resources.
        kind (str):
            Type of resource. Always
            compute#targetHttpsProxyList for lists of target
            HTTPS proxies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetHttpsProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetHttpsProxy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetInstance(proto.Message):
    r"""Represents a Target Instance resource. You can use a target
    instance to handle traffic for one or more forwarding rules,
    which is ideal for forwarding protocol traffic that is managed
    by a single source. For example, ESP, AH, TCP, or UDP. For more
    information, read Target instances.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        instance (str):
            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

            This field is a member of `oneof`_ ``_instance``.
        kind (str):
            [Output Only] The type of the resource. Always
            compute#targetInstance for target instances.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        nat_policy (str):
            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. Check the
            NatPolicy enum for the list of possible values.

            This field is a member of `oneof`_ ``_nat_policy``.
        network (str):
            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.

            This field is a member of `oneof`_ ``_network``.
        security_policy (str):
            [Output Only] The resource URL for the security policy
            associated with this target instance.

            This field is a member of `oneof`_ ``_security_policy``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        zone (str):
            [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.

            This field is a member of `oneof`_ ``_zone``.
    """

    class NatPolicy(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_NAT_POLICY (0):
                A value indicating that the enum field is not
                set.
            NO_NAT (161455491):
                No NAT performed.
        """
        UNDEFINED_NAT_POLICY = 0
        NO_NAT = 161455491

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    nat_policy: str = proto.Field(
        proto.STRING,
        number=509780496,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
        optional=True,
    )


class TargetInstanceAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.TargetInstancesScopedList]):
            A list of TargetInstance resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "TargetInstancesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="TargetInstancesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetInstanceList(proto.Message):
    r"""Contains a list of TargetInstance resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetInstance]):
            A list of TargetInstance resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetInstance"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetInstance",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetInstancesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_instances (MutableSequence[google.cloud.compute_v1beta.types.TargetInstance]):
            A list of target instances contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of addresses when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    target_instances: MutableSequence["TargetInstance"] = proto.RepeatedField(
        proto.MESSAGE,
        number=392915280,
        message="TargetInstance",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetPool(proto.Message):
    r"""Represents a Target Pool resource. Target pools are used with
    external passthrough Network Load Balancers. A target pool
    references member instances, an associated legacy
    HttpHealthCheck resource, and, optionally, a backup target pool.
    For more information, read Using target pools.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backup_pool (str):
            The server-defined URL for the resource. This field is
            applicable only when the containing target pool is serving a
            forwarding rule as the primary pool, and its failoverRatio
            field is properly set to a value between [0, 1]. backupPool
            and failoverRatio together define the fallback behavior of
            the primary target pool: if the ratio of the healthy
            instances in the primary pool is at or below failoverRatio,
            traffic arriving at the load-balanced IP will be directed to
            the backup pool. In case where failoverRatio and backupPool
            are not set, or all the instances in the backup pool are
            unhealthy, the traffic will be directed back to the primary
            pool in the "force" mode, where traffic will be spread to
            the healthy instances with the best effort, or to all
            instances when no instance is healthy.

            This field is a member of `oneof`_ ``_backup_pool``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        failover_ratio (float):
            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.

            This field is a member of `oneof`_ ``_failover_ratio``.
        health_checks (MutableSequence[str]):
            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.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        instances (MutableSequence[str]):
            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.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#targetPool for target pools.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [Output Only] URL of the region where the target pool
            resides.

            This field is a member of `oneof`_ ``_region``.
        security_policy (str):
            [Output Only] The resource URL for the security policy
            associated with this target pool.

            This field is a member of `oneof`_ ``_security_policy``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        session_affinity (str):
            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. Check the SessionAffinity enum for
            the list of possible values.

            This field is a member of `oneof`_ ``_session_affinity``.
    """

    class SessionAffinity(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_SESSION_AFFINITY (0):
                A value indicating that the enum field is not
                set.
            CLIENT_IP (345665051):
                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 (106122516):
                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 (221722926):
                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 (25322148):
                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 (370321204):
                Hash based on a cookie generated by the L7
                loadbalancer. Only valid for HTTP(S) load
                balancing.
            HEADER_FIELD (200737960):
                The hash is based on a user specified header
                field.
            HTTP_COOKIE (494981627):
                The hash is based on a user provided cookie.
            NONE (2402104):
                No session affinity. Connections from the
                same client IP may go to any instance in the
                pool.
            STRONG_COOKIE_AFFINITY (438628091):
                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.
        """
        UNDEFINED_SESSION_AFFINITY = 0
        CLIENT_IP = 345665051
        CLIENT_IP_NO_DESTINATION = 106122516
        CLIENT_IP_PORT_PROTO = 221722926
        CLIENT_IP_PROTO = 25322148
        GENERATED_COOKIE = 370321204
        HEADER_FIELD = 200737960
        HTTP_COOKIE = 494981627
        NONE = 2402104
        STRONG_COOKIE_AFFINITY = 438628091

    backup_pool: str = proto.Field(
        proto.STRING,
        number=45884537,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    failover_ratio: float = proto.Field(
        proto.FLOAT,
        number=212667006,
        optional=True,
    )
    health_checks: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=448370606,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    instances: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=29097598,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    security_policy: str = proto.Field(
        proto.STRING,
        number=171082513,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    session_affinity: str = proto.Field(
        proto.STRING,
        number=463888561,
        optional=True,
    )


class TargetPoolAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.TargetPoolsScopedList]):
            A list of TargetPool resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetPoolAggregatedList for aggregated lists of
            target pools.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "TargetPoolsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="TargetPoolsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetPoolInstanceHealth(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_status (MutableSequence[google.cloud.compute_v1beta.types.HealthStatus]):

        kind (str):
            [Output Only] Type of resource. Always
            compute#targetPoolInstanceHealth when checking the health of
            an instance.

            This field is a member of `oneof`_ ``_kind``.
    """

    health_status: MutableSequence["HealthStatus"] = proto.RepeatedField(
        proto.MESSAGE,
        number=380545845,
        message="HealthStatus",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )


class TargetPoolList(proto.Message):
    r"""Contains a list of TargetPool resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetPool]):
            A list of TargetPool resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetPoolList for lists of target pools.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetPool"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetPool",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetPoolsAddHealthCheckRequest(proto.Message):
    r"""

    Attributes:
        health_checks (MutableSequence[google.cloud.compute_v1beta.types.HealthCheckReference]):
            The HttpHealthCheck to add to the target
            pool.
    """

    health_checks: MutableSequence["HealthCheckReference"] = proto.RepeatedField(
        proto.MESSAGE,
        number=448370606,
        message="HealthCheckReference",
    )


class TargetPoolsAddInstanceRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.InstanceReference]):
            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: MutableSequence["InstanceReference"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="InstanceReference",
    )


class TargetPoolsRemoveHealthCheckRequest(proto.Message):
    r"""

    Attributes:
        health_checks (MutableSequence[google.cloud.compute_v1beta.types.HealthCheckReference]):
            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
    """

    health_checks: MutableSequence["HealthCheckReference"] = proto.RepeatedField(
        proto.MESSAGE,
        number=448370606,
        message="HealthCheckReference",
    )


class TargetPoolsRemoveInstanceRequest(proto.Message):
    r"""

    Attributes:
        instances (MutableSequence[google.cloud.compute_v1beta.types.InstanceReference]):
            URLs of the instances to be removed from
            target pool.
    """

    instances: MutableSequence["InstanceReference"] = proto.RepeatedField(
        proto.MESSAGE,
        number=29097598,
        message="InstanceReference",
    )


class TargetPoolsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_pools (MutableSequence[google.cloud.compute_v1beta.types.TargetPool]):
            A list of target pools contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of addresses when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    target_pools: MutableSequence["TargetPool"] = proto.RepeatedField(
        proto.MESSAGE,
        number=336072617,
        message="TargetPool",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target (str):

            This field is a member of `oneof`_ ``_target``.
    """

    target: str = proto.Field(
        proto.STRING,
        number=192835985,
        optional=True,
    )


class TargetSslProxiesSetBackendServiceRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        service (str):
            The URL of the new BackendService resource
            for the targetSslProxy.

            This field is a member of `oneof`_ ``_service``.
    """

    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )


class TargetSslProxiesSetCertificateMapRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        certificate_map (str):
            URL of the Certificate Map to associate with
            this TargetSslProxy. Accepted format is
            //certificatemanager.googleapis.com/projects/{project
            }/locations/{location}/certificateMaps/{resourceName}.

            This field is a member of `oneof`_ ``_certificate_map``.
    """

    certificate_map: str = proto.Field(
        proto.STRING,
        number=156463796,
        optional=True,
    )


class TargetSslProxiesSetProxyHeaderRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        proxy_header (str):
            The new type of proxy header to append before sending data
            to the backend. NONE or PROXY_V1 are allowed. Check the
            ProxyHeader enum for the list of possible values.

            This field is a member of `oneof`_ ``_proxy_header``.
    """

    class ProxyHeader(proto.Enum):
        r"""The new type of proxy header to append before sending data to the
        backend. NONE or PROXY_V1 are allowed.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )


class TargetSslProxiesSetSslCertificatesRequest(proto.Message):
    r"""

    Attributes:
        ssl_certificates (MutableSequence[str]):
            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.
    """

    ssl_certificates: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=366006543,
    )


class TargetSslProxy(proto.Message):
    r"""Represents a Target SSL Proxy resource. A target SSL proxy is
    a component of a Proxy Network Load Balancer. The forwarding
    rule references the target SSL proxy, and the target proxy then
    references a backend service. For more information, read Proxy
    Network Load Balancer overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        certificate_map (str):
            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}.

            This field is a member of `oneof`_ ``_certificate_map``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#targetSslProxy for target SSL proxies.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        proxy_header (str):
            Specifies the type of proxy header to append before sending
            data to the backend, either NONE or PROXY_V1. The default is
            NONE. Check the ProxyHeader enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_proxy_header``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        service (str):
            URL to the BackendService resource.

            This field is a member of `oneof`_ ``_service``.
        ssl_certificates (MutableSequence[str]):
            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.
        ssl_policy (str):
            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.

            This field is a member of `oneof`_ ``_ssl_policy``.
    """

    class ProxyHeader(proto.Enum):
        r"""Specifies the type of proxy header to append before sending data to
        the backend, either NONE or PROXY_V1. The default is NONE.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    certificate_map: str = proto.Field(
        proto.STRING,
        number=156463796,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )
    ssl_certificates: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=366006543,
    )
    ssl_policy: str = proto.Field(
        proto.STRING,
        number=295190213,
        optional=True,
    )


class TargetSslProxyList(proto.Message):
    r"""Contains a list of TargetSslProxy resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetSslProxy]):
            A list of TargetSslProxy resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetSslProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetSslProxy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetTcpProxiesScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_tcp_proxies (MutableSequence[google.cloud.compute_v1beta.types.TargetTcpProxy]):
            A list of TargetTcpProxies contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of backend services when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    target_tcp_proxies: MutableSequence["TargetTcpProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=262056832,
        message="TargetTcpProxy",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetTcpProxiesSetBackendServiceRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        service (str):
            The URL of the new BackendService resource
            for the targetTcpProxy.

            This field is a member of `oneof`_ ``_service``.
    """

    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )


class TargetTcpProxiesSetProxyHeaderRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        proxy_header (str):
            The new type of proxy header to append before sending data
            to the backend. NONE or PROXY_V1 are allowed. Check the
            ProxyHeader enum for the list of possible values.

            This field is a member of `oneof`_ ``_proxy_header``.
    """

    class ProxyHeader(proto.Enum):
        r"""The new type of proxy header to append before sending data to the
        backend. NONE or PROXY_V1 are allowed.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )


class TargetTcpProxy(proto.Message):
    r"""Represents a Target TCP Proxy resource. A target TCP proxy is
    a component of a Proxy Network Load Balancer. The forwarding
    rule references the target TCP proxy, and the target proxy then
    references a backend service. For more information, read Proxy
    Network Load Balancer overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#targetTcpProxy for target TCP proxies.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        proxy_bind (bool):
            This field only applies when the forwarding rule that
            references this target proxy has a loadBalancingScheme set
            to INTERNAL_SELF_MANAGED. When this field is set to true,
            Envoy proxies set up inbound traffic interception and bind
            to the IP address and port specified in the forwarding rule.
            This is generally useful when using Traffic Director to
            configure Envoy as a gateway or middle proxy (in other
            words, not a sidecar proxy). The Envoy proxy listens for
            inbound requests and handles requests when it receives them.
            The default is false.

            This field is a member of `oneof`_ ``_proxy_bind``.
        proxy_header (str):
            Specifies the type of proxy header to append before sending
            data to the backend, either NONE or PROXY_V1. The default is
            NONE. Check the ProxyHeader enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_proxy_header``.
        region (str):
            [Output Only] URL of the region where the regional TCP proxy
            resides. This field is not applicable to global TCP proxy.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        service (str):
            URL to the BackendService resource.

            This field is a member of `oneof`_ ``_service``.
    """

    class ProxyHeader(proto.Enum):
        r"""Specifies the type of proxy header to append before sending data to
        the backend, either NONE or PROXY_V1. The default is NONE.

        Values:
            UNDEFINED_PROXY_HEADER (0):
                A value indicating that the enum field is not
                set.
            NONE (2402104):
                No description available.
            PROXY_V1 (334352940):
                No description available.
        """
        UNDEFINED_PROXY_HEADER = 0
        NONE = 2402104
        PROXY_V1 = 334352940

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    proxy_bind: bool = proto.Field(
        proto.BOOL,
        number=286025582,
        optional=True,
    )
    proxy_header: str = proto.Field(
        proto.STRING,
        number=160374142,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )


class TargetTcpProxyAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.TargetTcpProxiesScopedList]):
            A list of TargetTcpProxiesScopedList
            resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetTcpProxyAggregatedList for lists of Target TCP
            Proxies.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "TargetTcpProxiesScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="TargetTcpProxiesScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetTcpProxyList(proto.Message):
    r"""Contains a list of TargetTcpProxy resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetTcpProxy]):
            A list of TargetTcpProxy resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetTcpProxy"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetTcpProxy",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetVpnGateway(proto.Message):
    r"""Represents a Target VPN Gateway resource. The target VPN
    gateway resource represents a Classic Cloud VPN gateway. For
    more information, read the the Cloud VPN Overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        forwarding_rules (MutableSequence[str]):
            [Output Only] A list of URLs to the ForwardingRule
            resources. ForwardingRules are created using
            compute.forwardingRules.insert and associated with a VPN
            gateway.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetVpnGateway for target VPN gateways.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this TargetVpnGateway, which is essentially a
            hash of the labels set used for optimistic
            locking. The fingerprint is initially generated
            by Compute Engine and changes after every
            request to modify or update labels. You must
            always provide an up-to-date fingerprint hash in
            order to update or change labels, otherwise the
            request will fail with error 412
            conditionNotMet. To see the latest fingerprint,
            make a get() request to retrieve a
            TargetVpnGateway.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            URL of the network to which this VPN gateway
            is attached. Provided by the client when the VPN
            gateway is created.

            This field is a member of `oneof`_ ``_network``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [Output Only] The status of the VPN gateway, which can be
            one of the following: CREATING, READY, FAILED, or DELETING.
            Check the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        tunnels (MutableSequence[str]):
            [Output Only] A list of URLs to VpnTunnel resources.
            VpnTunnels are created using the compute.vpntunnels.insert
            method and associated with a VPN gateway.
    """

    class Status(proto.Enum):
        r"""[Output Only] The status of the VPN gateway, which can be one of the
        following: CREATING, READY, FAILED, or DELETING.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            CREATING (455564985):
                No description available.
            DELETING (528602024):
                No description available.
            FAILED (455706685):
                No description available.
            READY (77848963):
                No description available.
        """
        UNDEFINED_STATUS = 0
        CREATING = 455564985
        DELETING = 528602024
        FAILED = 455706685
        READY = 77848963

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    forwarding_rules: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=315821365,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    tunnels: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=104561931,
    )


class TargetVpnGatewayAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.TargetVpnGatewaysScopedList]):
            A list of TargetVpnGateway resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetVpnGateway for target VPN gateways.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "TargetVpnGatewaysScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="TargetVpnGatewaysScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetVpnGatewayList(proto.Message):
    r"""Contains a list of TargetVpnGateway resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.TargetVpnGateway]):
            A list of TargetVpnGateway resources.
        kind (str):
            [Output Only] Type of resource. Always
            compute#targetVpnGateway for target VPN gateways.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["TargetVpnGateway"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="TargetVpnGateway",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TargetVpnGatewaysScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        target_vpn_gateways (MutableSequence[google.cloud.compute_v1beta.types.TargetVpnGateway]):
            [Output Only] A list of target VPN gateways contained in
            this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of addresses when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    target_vpn_gateways: MutableSequence["TargetVpnGateway"] = proto.RepeatedField(
        proto.MESSAGE,
        number=401770888,
        message="TargetVpnGateway",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class TestFailure(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        actual_output_url (str):
            The actual output URL evaluated by a load
            balancer containing the scheme, host, path and
            query parameters.

            This field is a member of `oneof`_ ``_actual_output_url``.
        actual_redirect_response_code (int):
            Actual HTTP status code for rule with ``urlRedirect``
            calculated by load balancer

            This field is a member of `oneof`_ ``_actual_redirect_response_code``.
        actual_service (str):
            BackendService or BackendBucket returned by
            load balancer.

            This field is a member of `oneof`_ ``_actual_service``.
        expected_output_url (str):
            The expected output URL evaluated by a load
            balancer containing the scheme, host, path and
            query parameters.

            This field is a member of `oneof`_ ``_expected_output_url``.
        expected_redirect_response_code (int):
            Expected HTTP status code for rule with ``urlRedirect``
            calculated by load balancer

            This field is a member of `oneof`_ ``_expected_redirect_response_code``.
        expected_service (str):
            Expected BackendService or BackendBucket
            resource the given URL should be mapped to.

            This field is a member of `oneof`_ ``_expected_service``.
        headers (MutableSequence[google.cloud.compute_v1beta.types.UrlMapTestHeader]):
            HTTP headers of the request.
        host (str):
            Host portion of the URL.

            This field is a member of `oneof`_ ``_host``.
        path (str):
            Path portion including query parameters in
            the URL.

            This field is a member of `oneof`_ ``_path``.
    """

    actual_output_url: str = proto.Field(
        proto.STRING,
        number=287075458,
        optional=True,
    )
    actual_redirect_response_code: int = proto.Field(
        proto.INT32,
        number=42926553,
        optional=True,
    )
    actual_service: str = proto.Field(
        proto.STRING,
        number=440379652,
        optional=True,
    )
    expected_output_url: str = proto.Field(
        proto.STRING,
        number=433967384,
        optional=True,
    )
    expected_redirect_response_code: int = proto.Field(
        proto.INT32,
        number=18888047,
        optional=True,
    )
    expected_service: str = proto.Field(
        proto.STRING,
        number=133987374,
        optional=True,
    )
    headers: MutableSequence["UrlMapTestHeader"] = proto.RepeatedField(
        proto.MESSAGE,
        number=258436998,
        message="UrlMapTestHeader",
    )
    host: str = proto.Field(
        proto.STRING,
        number=3208616,
        optional=True,
    )
    path: str = proto.Field(
        proto.STRING,
        number=3433509,
        optional=True,
    )


class TestIamPermissionsAddressRequest(proto.Message):
    r"""A request message for Addresses.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsAutoscalerRequest(proto.Message):
    r"""A request message for Autoscalers.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsDiskRequest(proto.Message):
    r"""A request message for Disks.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsExternalVpnGatewayRequest(proto.Message):
    r"""A request message for ExternalVpnGateways.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsFirewallPolicyRequest(proto.Message):
    r"""A request message for FirewallPolicies.TestIamPermissions.
    See the method description for details.

    Attributes:
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsFirewallRequest(proto.Message):
    r"""A request message for Firewalls.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsForwardingRuleRequest(proto.Message):
    r"""A request message for ForwardingRules.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsGlobalAddressRequest(proto.Message):
    r"""A request message for GlobalAddresses.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsGlobalForwardingRuleRequest(proto.Message):
    r"""A request message for
    GlobalForwardingRules.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsHealthCheckRequest(proto.Message):
    r"""A request message for HealthChecks.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsImageRequest(proto.Message):
    r"""A request message for Images.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsInstanceGroupRequest(proto.Message):
    r"""A request message for InstanceGroups.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsInstanceRequest(proto.Message):
    r"""A request message for Instances.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsInstanceTemplateRequest(proto.Message):
    r"""A request message for InstanceTemplates.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsInstantSnapshotRequest(proto.Message):
    r"""A request message for InstantSnapshots.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsInterconnectAttachmentGroupRequest(proto.Message):
    r"""A request message for
    InterconnectAttachmentGroups.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsInterconnectAttachmentRequest(proto.Message):
    r"""A request message for
    InterconnectAttachments.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsInterconnectGroupRequest(proto.Message):
    r"""A request message for InterconnectGroups.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsInterconnectRequest(proto.Message):
    r"""A request message for Interconnects.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsLicenseCodeRequest(proto.Message):
    r"""A request message for LicenseCodes.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsLicenseRequest(proto.Message):
    r"""A request message for Licenses.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsMachineImageRequest(proto.Message):
    r"""A request message for MachineImages.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsNetworkAttachmentRequest(proto.Message):
    r"""A request message for NetworkAttachments.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsNetworkEndpointGroupRequest(proto.Message):
    r"""A request message for
    NetworkEndpointGroups.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    NetworkFirewallPolicies.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsNetworkRequest(proto.Message):
    r"""A request message for Networks.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsNodeGroupRequest(proto.Message):
    r"""A request message for NodeGroups.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsNodeTemplateRequest(proto.Message):
    r"""A request message for NodeTemplates.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsPacketMirroringRequest(proto.Message):
    r"""A request message for PacketMirrorings.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionAutoscalerRequest(proto.Message):
    r"""A request message for RegionAutoscalers.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionBackendServiceRequest(proto.Message):
    r"""A request message for
    RegionBackendServices.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionCommitmentRequest(proto.Message):
    r"""A request message for RegionCommitments.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionHealthCheckRequest(proto.Message):
    r"""A request message for RegionHealthChecks.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionHealthCheckServiceRequest(proto.Message):
    r"""A request message for
    RegionHealthCheckServices.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionInstanceGroupRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroups.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionInstantSnapshotRequest(proto.Message):
    r"""A request message for
    RegionInstantSnapshots.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionNetworkFirewallPolicyRequest(proto.Message):
    r"""A request message for
    RegionNetworkFirewallPolicies.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionNotificationEndpointRequest(proto.Message):
    r"""A request message for
    RegionNotificationEndpoints.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionSnapshotRequest(proto.Message):
    r"""A request message for RegionSnapshots.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionSslCertificateRequest(proto.Message):
    r"""A request message for
    RegionSslCertificates.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionSslPolicyRequest(proto.Message):
    r"""A request message for RegionSslPolicies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionTargetHttpProxyRequest(proto.Message):
    r"""A request message for
    RegionTargetHttpProxies.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionTargetHttpsProxyRequest(proto.Message):
    r"""A request message for
    RegionTargetHttpsProxies.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionTargetTcpProxyRequest(proto.Message):
    r"""A request message for
    RegionTargetTcpProxies.TestIamPermissions. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsReservationRequest(proto.Message):
    r"""A request message for Reservations.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsResourcePolicyRequest(proto.Message):
    r"""A request message for ResourcePolicies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRouteRequest(proto.Message):
    r"""A request message for Routes.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsRouterRequest(proto.Message):
    r"""A request message for Routers.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsSecurityPolicyRequest(proto.Message):
    r"""A request message for SecurityPolicies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsServiceAttachmentRequest(proto.Message):
    r"""A request message for ServiceAttachments.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsSnapshotRequest(proto.Message):
    r"""A request message for Snapshots.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsSslCertificateRequest(proto.Message):
    r"""A request message for SslCertificates.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsSslPolicyRequest(proto.Message):
    r"""A request message for SslPolicies.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsStoragePoolRequest(proto.Message):
    r"""A request message for StoragePools.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsSubnetworkRequest(proto.Message):
    r"""A request message for Subnetworks.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsTargetGrpcProxyRequest(proto.Message):
    r"""A request message for TargetGrpcProxies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsTargetHttpProxyRequest(proto.Message):
    r"""A request message for TargetHttpProxies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsTargetHttpsProxyRequest(proto.Message):
    r"""A request message for TargetHttpsProxies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsTargetInstanceRequest(proto.Message):
    r"""A request message for TargetInstances.TestIamPermissions. See
    the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class TestIamPermissionsTargetPoolRequest(proto.Message):
    r"""A request message for TargetPools.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsTargetSslProxyRequest(proto.Message):
    r"""A request message for TargetSslProxies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsTargetTcpProxyRequest(proto.Message):
    r"""A request message for TargetTcpProxies.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsTargetVpnGatewayRequest(proto.Message):
    r"""A request message for TargetVpnGateways.TestIamPermissions.
    See the method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsVpnGatewayRequest(proto.Message):
    r"""A request message for VpnGateways.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestIamPermissionsVpnTunnelRequest(proto.Message):
    r"""A request message for VpnTunnels.TestIamPermissions. See the
    method description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        resource (str):
            Name or id of the resource for this request.
        test_permissions_request_resource (google.cloud.compute_v1beta.types.TestPermissionsRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    resource: str = proto.Field(
        proto.STRING,
        number=195806222,
    )
    test_permissions_request_resource: "TestPermissionsRequest" = proto.Field(
        proto.MESSAGE,
        number=439214758,
        message="TestPermissionsRequest",
    )


class TestPermissionsRequest(proto.Message):
    r"""

    Attributes:
        permissions (MutableSequence[str]):
            The set of permissions to check for the 'resource'.
            Permissions with wildcards (such as '*' or 'storage.*') are
            not allowed.
    """

    permissions: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=59962500,
    )


class TestPermissionsResponse(proto.Message):
    r"""

    Attributes:
        permissions (MutableSequence[str]):
            A subset of ``TestPermissionsRequest.permissions`` that the
            caller is allowed.
    """

    permissions: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=59962500,
    )


class Uint128(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        high (int):

            This field is a member of `oneof`_ ``_high``.
        low (int):

            This field is a member of `oneof`_ ``_low``.
    """

    high: int = proto.Field(
        proto.UINT64,
        number=3202466,
        optional=True,
    )
    low: int = proto.Field(
        proto.UINT64,
        number=107348,
        optional=True,
    )


class UpcomingMaintenance(proto.Message):
    r"""Upcoming Maintenance notification information.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        can_reschedule (bool):
            Indicates if the maintenance can be customer
            triggered.

            This field is a member of `oneof`_ ``_can_reschedule``.
        latest_window_start_time (str):
            The latest time for the planned maintenance
            window to start. This timestamp value is in
            RFC3339 text format.

            This field is a member of `oneof`_ ``_latest_window_start_time``.
        maintenance_on_shutdown (bool):
            Indicates whether the UpcomingMaintenance
            will be triggered on VM shutdown.

            This field is a member of `oneof`_ ``_maintenance_on_shutdown``.
        maintenance_status (str):
            Check the MaintenanceStatus enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_maintenance_status``.
        type_ (str):
            Defines the type of maintenance.
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
        window_end_time (str):
            The time by which the maintenance disruption
            will be completed. This timestamp value is in
            RFC3339 text format.

            This field is a member of `oneof`_ ``_window_end_time``.
        window_start_time (str):
            The current start time of the maintenance
            window. This timestamp value is in RFC3339 text
            format.

            This field is a member of `oneof`_ ``_window_start_time``.
    """

    class MaintenanceStatus(proto.Enum):
        r"""

        Values:
            UNDEFINED_MAINTENANCE_STATUS (0):
                A value indicating that the enum field is not
                set.
            ONGOING (473158491):
                There is ongoing maintenance on this VM.
            PENDING (35394935):
                There is pending maintenance.
            UNKNOWN (433141802):
                Unknown maintenance status. Do not use this
                value.
        """
        UNDEFINED_MAINTENANCE_STATUS = 0
        ONGOING = 473158491
        PENDING = 35394935
        UNKNOWN = 433141802

    class Type(proto.Enum):
        r"""Defines the type of maintenance.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            SCHEDULED (478400653):
                Scheduled maintenance (e.g. maintenance after
                uptime guarantee is complete).
            UNKNOWN_TYPE (490705455):
                No type specified. Do not use this value.
            UNSCHEDULED (450077204):
                Unscheduled maintenance (e.g. emergency
                maintenance during uptime guarantee).
        """
        UNDEFINED_TYPE = 0
        SCHEDULED = 478400653
        UNKNOWN_TYPE = 490705455
        UNSCHEDULED = 450077204

    can_reschedule: bool = proto.Field(
        proto.BOOL,
        number=95981977,
        optional=True,
    )
    latest_window_start_time: str = proto.Field(
        proto.STRING,
        number=128032129,
        optional=True,
    )
    maintenance_on_shutdown: bool = proto.Field(
        proto.BOOL,
        number=231055754,
        optional=True,
    )
    maintenance_status: str = proto.Field(
        proto.STRING,
        number=81645214,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )
    window_end_time: str = proto.Field(
        proto.STRING,
        number=271816480,
        optional=True,
    )
    window_start_time: str = proto.Field(
        proto.STRING,
        number=473061433,
        optional=True,
    )


class UpdateAccessConfigInstanceRequest(proto.Message):
    r"""A request message for Instances.UpdateAccessConfig. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        access_config_resource (google.cloud.compute_v1beta.types.AccessConfig):
            The body resource for this request
        instance (str):
            The instance name for this request.
        network_interface (str):
            The name of the network interface where the
            access config is attached.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    access_config_resource: "AccessConfig" = proto.Field(
        proto.MESSAGE,
        number=387825552,
        message="AccessConfig",
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    network_interface: str = proto.Field(
        proto.STRING,
        number=365387880,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateAutoscalerRequest(proto.Message):
    r"""A request message for Autoscalers.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler (str):
            Name of the autoscaler to update.

            This field is a member of `oneof`_ ``_autoscaler``.
        autoscaler_resource (google.cloud.compute_v1beta.types.Autoscaler):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            Name of the zone for this request.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
        optional=True,
    )
    autoscaler_resource: "Autoscaler" = proto.Field(
        proto.MESSAGE,
        number=207616118,
        message="Autoscaler",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateBackendBucketRequest(proto.Message):
    r"""A request message for BackendBuckets.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_bucket (str):
            Name of the BackendBucket resource to update.
        backend_bucket_resource (google.cloud.compute_v1beta.types.BackendBucket):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_bucket: str = proto.Field(
        proto.STRING,
        number=91714037,
    )
    backend_bucket_resource: "BackendBucket" = proto.Field(
        proto.MESSAGE,
        number=380757784,
        message="BackendBucket",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateBackendServiceRequest(proto.Message):
    r"""A request message for BackendServices.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to
            update.
        backend_service_resource (google.cloud.compute_v1beta.types.BackendService):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    backend_service_resource: "BackendService" = proto.Field(
        proto.MESSAGE,
        number=347586723,
        message="BackendService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateDiskRequest(proto.Message):
    r"""A request message for Disks.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The disk name for this request.
        disk_resource (google.cloud.compute_v1beta.types.Disk):
            The body resource for this request
        paths (str):

            This field is a member of `oneof`_ ``_paths``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        zone (str):
            The name of the zone for this request.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    disk_resource: "Disk" = proto.Field(
        proto.MESSAGE,
        number=25880688,
        message="Disk",
    )
    paths: str = proto.Field(
        proto.STRING,
        number=106438894,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateDisplayDeviceInstanceRequest(proto.Message):
    r"""A request message for Instances.UpdateDisplayDevice. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        display_device_resource (google.cloud.compute_v1beta.types.DisplayDevice):
            The body resource for this request
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    display_device_resource: "DisplayDevice" = proto.Field(
        proto.MESSAGE,
        number=289686106,
        message="DisplayDevice",
    )
    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateFirewallRequest(proto.Message):
    r"""A request message for Firewalls.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        firewall (str):
            Name of the firewall rule to update.
        firewall_resource (google.cloud.compute_v1beta.types.Firewall):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    firewall: str = proto.Field(
        proto.STRING,
        number=511016192,
    )
    firewall_resource: "Firewall" = proto.Field(
        proto.MESSAGE,
        number=41425005,
        message="Firewall",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateFutureReservationRequest(proto.Message):
    r"""A request message for FutureReservations.Update. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        future_reservation (str):
            Name of the reservation to update. Name
            should conform to RFC1035.
        future_reservation_resource (google.cloud.compute_v1beta.types.FutureReservation):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        zone (str):
            Name of the zone for this request. Name
            should conform to RFC1035.
    """

    future_reservation: str = proto.Field(
        proto.STRING,
        number=56206160,
    )
    future_reservation_resource: "FutureReservation" = proto.Field(
        proto.MESSAGE,
        number=466750493,
        message="FutureReservation",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateHealthCheckRequest(proto.Message):
    r"""A request message for HealthChecks.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to update.
        health_check_resource (google.cloud.compute_v1beta.types.HealthCheck):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    health_check_resource: "HealthCheck" = proto.Field(
        proto.MESSAGE,
        number=201925032,
        message="HealthCheck",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateInstanceGroupManagerRequest(proto.Message):
    r"""A request message for InstanceGroupManagers.Update. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the instance group manager.
        instance_group_manager_resource (google.cloud.compute_v1beta.types.InstanceGroupManager):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where you want to create
            the managed instance group.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_manager_resource: "InstanceGroupManager" = proto.Field(
        proto.MESSAGE,
        number=261063946,
        message="InstanceGroupManager",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateInstanceRequest(proto.Message):
    r"""A request message for Instances.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance resource to update.
        instance_resource (google.cloud.compute_v1beta.types.Instance):
            The body resource for this request
        minimal_action (str):
            Specifies the action to take when updating an
            instance even if the updated properties do not
            require it. If not specified, then Compute
            Engine acts based on the minimum action that the
            updated properties require. Check the
            MinimalAction enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_minimal_action``.
        most_disruptive_allowed_action (str):
            Specifies the most disruptive action that can be taken on
            the instance as part of the update. Compute Engine returns
            an error if the instance properties require a more
            disruptive action as part of the instance update. Valid
            options from lowest to highest are NO_EFFECT, REFRESH, and
            RESTART. Check the MostDisruptiveAllowedAction enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_most_disruptive_allowed_action``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    class MinimalAction(proto.Enum):
        r"""Specifies the action to take when updating an instance even if the
        updated properties do not require it. If not specified, then Compute
        Engine acts based on the minimum action that the updated properties
        require. Additional supported values which may be not listed in the
        enum directly due to technical reasons: INVALID NO_EFFECT REFRESH
        RESTART

        Values:
            UNDEFINED_MINIMAL_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MINIMAL_ACTION = 0

    class MostDisruptiveAllowedAction(proto.Enum):
        r"""Specifies the most disruptive action that can be taken on the
        instance as part of the update. Compute Engine returns an error if
        the instance properties require a more disruptive action as part of
        the instance update. Valid options from lowest to highest are
        NO_EFFECT, REFRESH, and RESTART. Additional supported values which
        may be not listed in the enum directly due to technical reasons:
        INVALID NO_EFFECT REFRESH RESTART

        Values:
            UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION (0):
                A value indicating that the enum field is not
                set.
        """
        UNDEFINED_MOST_DISRUPTIVE_ALLOWED_ACTION = 0

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    instance_resource: "Instance" = proto.Field(
        proto.MESSAGE,
        number=215988344,
        message="Instance",
    )
    minimal_action: str = proto.Field(
        proto.STRING,
        number=270567060,
        optional=True,
    )
    most_disruptive_allowed_action: str = proto.Field(
        proto.STRING,
        number=66103053,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateLicenseRequest(proto.Message):
    r"""A request message for Licenses.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        license_ (str):
            The license name for this request.
        license_resource (google.cloud.compute_v1beta.types.License):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    license_: str = proto.Field(
        proto.STRING,
        number=166757441,
    )
    license_resource: "License" = proto.Field(
        proto.MESSAGE,
        number=437955148,
        message="License",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class UpdateNetworkInterfaceInstanceRequest(proto.Message):
    r"""A request message for Instances.UpdateNetworkInterface. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            The instance name for this request.
        network_interface (str):
            The name of the network interface to update.
        network_interface_resource (google.cloud.compute_v1beta.types.NetworkInterface):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    network_interface: str = proto.Field(
        proto.STRING,
        number=365387880,
    )
    network_interface_resource: "NetworkInterface" = proto.Field(
        proto.MESSAGE,
        number=325814789,
        message="NetworkInterface",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdatePeeringNetworkRequest(proto.Message):
    r"""A request message for Networks.UpdatePeering. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        network (str):
            Name of the network resource which the
            updated peering is belonging to.
        networks_update_peering_request_resource (google.cloud.compute_v1beta.types.NetworksUpdatePeeringRequest):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    network: str = proto.Field(
        proto.STRING,
        number=232872494,
    )
    networks_update_peering_request_resource: "NetworksUpdatePeeringRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=224433497,
            message="NetworksUpdatePeeringRequest",
        )
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdatePerInstanceConfigsInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    InstanceGroupManagers.UpdatePerInstanceConfigs. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        instance_group_managers_update_per_instance_configs_req_resource (google.cloud.compute_v1beta.types.InstanceGroupManagersUpdatePerInstanceConfigsReq):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        zone (str):
            The name of the zone where the managed
            instance group is located. It should conform to
            RFC1035.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_managers_update_per_instance_configs_req_resource: "InstanceGroupManagersUpdatePerInstanceConfigsReq" = proto.Field(
        proto.MESSAGE,
        number=141402302,
        message="InstanceGroupManagersUpdatePerInstanceConfigsReq",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdatePerInstanceConfigsRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for
    RegionInstanceGroupManagers.UpdatePerInstanceConfigs. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the managed instance group. It
            should conform to RFC1035.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request,
            should conform to RFC1035.
        region_instance_group_manager_update_instance_config_req_resource (google.cloud.compute_v1beta.types.RegionInstanceGroupManagerUpdateInstanceConfigReq):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_instance_group_manager_update_instance_config_req_resource: "RegionInstanceGroupManagerUpdateInstanceConfigReq" = proto.Field(
        proto.MESSAGE,
        number=89036583,
        message="RegionInstanceGroupManagerUpdateInstanceConfigReq",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdatePreviewFeatureRequest(proto.Message):
    r"""A request message for PreviewFeatures.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        preview_feature (str):
            Name of the PreviewFeature for this request.
        preview_feature_resource (google.cloud.compute_v1beta.types.PreviewFeature):
            The body resource for this request
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    preview_feature: str = proto.Field(
        proto.STRING,
        number=454999423,
    )
    preview_feature_resource: "PreviewFeature" = proto.Field(
        proto.MESSAGE,
        number=10876622,
        message="PreviewFeature",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateRegionAutoscalerRequest(proto.Message):
    r"""A request message for RegionAutoscalers.Update. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        autoscaler (str):
            Name of the autoscaler to update.

            This field is a member of `oneof`_ ``_autoscaler``.
        autoscaler_resource (google.cloud.compute_v1beta.types.Autoscaler):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    autoscaler: str = proto.Field(
        proto.STRING,
        number=517258967,
        optional=True,
    )
    autoscaler_resource: "Autoscaler" = proto.Field(
        proto.MESSAGE,
        number=207616118,
        message="Autoscaler",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateRegionBackendServiceRequest(proto.Message):
    r"""A request message for RegionBackendServices.Update. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            Name of the BackendService resource to
            update.
        backend_service_resource (google.cloud.compute_v1beta.types.BackendService):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
    )
    backend_service_resource: "BackendService" = proto.Field(
        proto.MESSAGE,
        number=347586723,
        message="BackendService",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateRegionCommitmentRequest(proto.Message):
    r"""A request message for RegionCommitments.Update. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        commitment (str):
            Name of the commitment that you want to
            update.
        commitment_resource (google.cloud.compute_v1beta.types.Commitment):
            The body resource for this request
        paths (str):

            This field is a member of `oneof`_ ``_paths``.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    commitment: str = proto.Field(
        proto.STRING,
        number=482134805,
    )
    commitment_resource: "Commitment" = proto.Field(
        proto.MESSAGE,
        number=244240888,
        message="Commitment",
    )
    paths: str = proto.Field(
        proto.STRING,
        number=106438894,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class UpdateRegionDiskRequest(proto.Message):
    r"""A request message for RegionDisks.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        disk (str):
            The disk name for this request.
        disk_resource (google.cloud.compute_v1beta.types.Disk):
            The body resource for this request
        paths (str):

            This field is a member of `oneof`_ ``_paths``.
        project (str):
            Project ID for this request.
        region (str):
            The name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
    """

    disk: str = proto.Field(
        proto.STRING,
        number=3083677,
    )
    disk_resource: "Disk" = proto.Field(
        proto.MESSAGE,
        number=25880688,
        message="Disk",
    )
    paths: str = proto.Field(
        proto.STRING,
        number=106438894,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )


class UpdateRegionHealthCheckRequest(proto.Message):
    r"""A request message for RegionHealthChecks.Update. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        health_check (str):
            Name of the HealthCheck resource to update.
        health_check_resource (google.cloud.compute_v1beta.types.HealthCheck):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    health_check: str = proto.Field(
        proto.STRING,
        number=308876645,
    )
    health_check_resource: "HealthCheck" = proto.Field(
        proto.MESSAGE,
        number=201925032,
        message="HealthCheck",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateRegionInstanceGroupManagerRequest(proto.Message):
    r"""A request message for RegionInstanceGroupManagers.Update. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_group_manager (str):
            The name of the instance group manager.
        instance_group_manager_resource (google.cloud.compute_v1beta.types.InstanceGroupManager):
            The body resource for this request
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    instance_group_manager: str = proto.Field(
        proto.STRING,
        number=249363395,
    )
    instance_group_manager_resource: "InstanceGroupManager" = proto.Field(
        proto.MESSAGE,
        number=261063946,
        message="InstanceGroupManager",
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        request_id (str):
            begin_interface: MixerMutationRequestBuilder Request ID to
            support idempotency.

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap resource to update.
        url_map_resource (google.cloud.compute_v1beta.types.UrlMap):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )
    url_map_resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=168675425,
        message="UrlMap",
    )


class UpdateReservationRequest(proto.Message):
    r"""A request message for Reservations.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        paths (str):

            This field is a member of `oneof`_ ``_paths``.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        reservation (str):
            Name of the reservation to update.
        reservation_resource (google.cloud.compute_v1beta.types.Reservation):
            The body resource for this request
        update_mask (str):
            Update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        zone (str):
            Name of the zone for this request.
    """

    paths: str = proto.Field(
        proto.STRING,
        number=106438894,
        optional=True,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    reservation: str = proto.Field(
        proto.STRING,
        number=47530956,
    )
    reservation_resource: "Reservation" = proto.Field(
        proto.MESSAGE,
        number=285030177,
        message="Reservation",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateReservationsRegionCommitmentRequest(proto.Message):
    r"""A request message for RegionCommitments.UpdateReservations.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        commitment (str):
            Name of the commitment for which the
            reservations are being updated.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        region_commitments_update_reservations_request_resource (google.cloud.compute_v1beta.types.RegionCommitmentsUpdateReservationsRequest):
            The body resource for this request
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    commitment: str = proto.Field(
        proto.STRING,
        number=482134805,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_commitments_update_reservations_request_resource: "RegionCommitmentsUpdateReservationsRequest" = proto.Field(
        proto.MESSAGE,
        number=453621612,
        message="RegionCommitmentsUpdateReservationsRequest",
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class UpdateRoutePolicyRouterRequest(proto.Message):
    r"""A request message for Routers.UpdateRoutePolicy. See the
    method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        route_policy_resource (google.cloud.compute_v1beta.types.RoutePolicy):
            The body resource for this request
        router (str):
            Name of the Router resource where Route
            Policy is defined.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    route_policy_resource: "RoutePolicy" = proto.Field(
        proto.MESSAGE,
        number=116219525,
        message="RoutePolicy",
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )


class UpdateRouterRequest(proto.Message):
    r"""A request message for Routers.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        router (str):
            Name of the Router resource to update.
        router_resource (google.cloud.compute_v1beta.types.Router):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
    )
    router_resource: "Router" = proto.Field(
        proto.MESSAGE,
        number=155222084,
        message="Router",
    )


class UpdateShieldedInstanceConfigInstanceRequest(proto.Message):
    r"""A request message for Instances.UpdateShieldedInstanceConfig.
    See the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name or id of the instance scoping this
            request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        shielded_instance_config_resource (google.cloud.compute_v1beta.types.ShieldedInstanceConfig):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    shielded_instance_config_resource: "ShieldedInstanceConfig" = proto.Field(
        proto.MESSAGE,
        number=272059224,
        message="ShieldedInstanceConfig",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateShieldedVmConfigInstanceRequest(proto.Message):
    r"""A request message for Instances.UpdateShieldedVmConfig. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance (str):
            Name of the instance scoping this request.
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        shielded_vm_config_resource (google.cloud.compute_v1beta.types.ShieldedVmConfig):
            The body resource for this request
        zone (str):
            The name of the zone for this request.
    """

    instance: str = proto.Field(
        proto.STRING,
        number=18257045,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    shielded_vm_config_resource: "ShieldedVmConfig" = proto.Field(
        proto.MESSAGE,
        number=340573882,
        message="ShieldedVmConfig",
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateStoragePoolRequest(proto.Message):
    r"""A request message for StoragePools.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        storage_pool (str):
            The storagePool name for this request.
        storage_pool_resource (google.cloud.compute_v1beta.types.StoragePool):
            The body resource for this request
        update_mask (str):
            update_mask indicates fields to be updated as part of this
            request.

            This field is a member of `oneof`_ ``_update_mask``.
        zone (str):
            The name of the zone for this request.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    storage_pool: str = proto.Field(
        proto.STRING,
        number=360473440,
    )
    storage_pool_resource: "StoragePool" = proto.Field(
        proto.MESSAGE,
        number=157179405,
        message="StoragePool",
    )
    update_mask: str = proto.Field(
        proto.STRING,
        number=500079778,
        optional=True,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class UpdateUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.Update. See the method
    description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
        url_map (str):
            Name of the UrlMap resource to update.
        url_map_resource (google.cloud.compute_v1beta.types.UrlMap):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )
    url_map_resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=168675425,
        message="UrlMap",
    )


class UrlMap(proto.Message):
    r"""Represents a URL Map resource. Compute Engine has two URL Map
    resources: \* `Global </compute/docs/reference/rest/beta/urlMaps>`__
    \* `Regional </compute/docs/reference/rest/beta/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 a loadBalancingScheme of
    INTERNAL_MANAGED. For more information, read URL Map Concepts.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        default_custom_error_response_policy (google.cloud.compute_v1beta.types.CustomErrorResponsePolicy):
            defaultCustomErrorResponsePolicy specifies how the Load
            Balancer returns error responses when BackendServiceor
            BackendBucket responds with an error. This policy takes
            effect at the load balancer level and applies only when no
            policy has been defined for the error code at lower levels
            like PathMatcher, RouteRule and PathRule within this UrlMap.
            For example, consider a UrlMap with the following
            configuration: - defaultCustomErrorResponsePolicy containing
            policies for responding to 5xx and 4xx errors - A
            PathMatcher configured for \*.example.com has
            defaultCustomErrorResponsePolicy for 4xx. If a request for
            http://www.example.com/ encounters a 404, the policy in
            pathMatcher.defaultCustomErrorResponsePolicy will be
            enforced. When the request for http://www.example.com/
            encounters a 502, the policy in
            UrlMap.defaultCustomErrorResponsePolicy will be enforced.
            When a request that does not match any host in
            \*.example.com such as http://www.myotherexample.com/,
            encounters a 404, UrlMap.defaultCustomErrorResponsePolicy
            takes effect. When used in conjunction with
            defaultRouteAction.retryPolicy, retries take precedence.
            Only once all retries are exhausted, the
            defaultCustomErrorResponsePolicy is applied. While
            attempting a retry, if load balancer is successful in
            reaching the service, the defaultCustomErrorResponsePolicy
            is ignored and the response from the service is returned to
            the client. defaultCustomErrorResponsePolicy is supported
            only for global external Application Load Balancers.

            This field is a member of `oneof`_ ``_default_custom_error_response_policy``.
        default_route_action (google.cloud.compute_v1beta.types.HttpRouteAction):
            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.

            This field is a member of `oneof`_ ``_default_route_action``.
        default_service (str):
            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.

            This field is a member of `oneof`_ ``_default_service``.
        default_url_redirect (google.cloud.compute_v1beta.types.HttpRedirectAction):
            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.

            This field is a member of `oneof`_ ``_default_url_redirect``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_fingerprint``.
        header_action (google.cloud.compute_v1beta.types.HttpHeaderAction):
            Specifies changes to request and response
            headers that need to take effect for the
            selected backendService. The headerAction
            specified here take effect after headerAction
            specified under pathMatcher. headerAction is not
            supported for load balancers that have their
            loadBalancingScheme set to EXTERNAL. Not
            supported when the URL map is bound to a target
            gRPC proxy that has validateForProxyless field
            set to true.

            This field is a member of `oneof`_ ``_header_action``.
        host_rules (MutableSequence[google.cloud.compute_v1beta.types.HostRule]):
            The list of host rules to use against the
            URL.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always compute#urlMaps
            for url maps.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        path_matchers (MutableSequence[google.cloud.compute_v1beta.types.PathMatcher]):
            The list of named PathMatchers to use against
            the URL.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        tests (MutableSequence[google.cloud.compute_v1beta.types.UrlMapTest]):
            The list of expected URL mapping tests.
            Request to update the UrlMap succeeds only if
            all test cases pass. You can specify a maximum
            of 100 tests per UrlMap. Not supported when the
            URL map is bound to a target gRPC proxy that has
            validateForProxyless field set to true.
    """

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    default_custom_error_response_policy: "CustomErrorResponsePolicy" = proto.Field(
        proto.MESSAGE,
        number=81266089,
        optional=True,
        message="CustomErrorResponsePolicy",
    )
    default_route_action: "HttpRouteAction" = proto.Field(
        proto.MESSAGE,
        number=378919466,
        optional=True,
        message="HttpRouteAction",
    )
    default_service: str = proto.Field(
        proto.STRING,
        number=370242231,
        optional=True,
    )
    default_url_redirect: "HttpRedirectAction" = proto.Field(
        proto.MESSAGE,
        number=359503338,
        optional=True,
        message="HttpRedirectAction",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    fingerprint: str = proto.Field(
        proto.STRING,
        number=234678500,
        optional=True,
    )
    header_action: "HttpHeaderAction" = proto.Field(
        proto.MESSAGE,
        number=328077352,
        optional=True,
        message="HttpHeaderAction",
    )
    host_rules: MutableSequence["HostRule"] = proto.RepeatedField(
        proto.MESSAGE,
        number=311804832,
        message="HostRule",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    path_matchers: MutableSequence["PathMatcher"] = proto.RepeatedField(
        proto.MESSAGE,
        number=271664219,
        message="PathMatcher",
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    tests: MutableSequence["UrlMapTest"] = proto.RepeatedField(
        proto.MESSAGE,
        number=110251553,
        message="UrlMapTest",
    )


class UrlMapList(proto.Message):
    r"""Contains a list of UrlMap resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.UrlMap]):
            A list of UrlMap resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["UrlMap"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="UrlMap",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class UrlMapReference(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        url_map (str):

            This field is a member of `oneof`_ ``_url_map``.
    """

    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
        optional=True,
    )


class UrlMapTest(proto.Message):
    r"""Message for the expected URL mappings.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        description (str):
            Description of this test case.

            This field is a member of `oneof`_ ``_description``.
        expected_output_url (str):
            The expected output URL evaluated by the load balancer
            containing the scheme, host, path and query parameters. For
            rules that forward requests to backends, the test passes
            only when expectedOutputUrl matches the request forwarded by
            the load balancer to backends. For rules with urlRewrite,
            the test verifies that the forwarded request matches
            hostRewrite and pathPrefixRewrite in the urlRewrite action.
            When service is specified, expectedOutputUrl`s scheme is
            ignored. For rules with urlRedirect, the test passes only if
            expectedOutputUrl matches the URL in the load balancer's
            redirect response. If urlRedirect specifies https_redirect,
            the test passes only if the scheme in expectedOutputUrl is
            also set to HTTPS. If urlRedirect specifies strip_query, the
            test passes only if expectedOutputUrl does not contain any
            query parameters. expectedOutputUrl is optional when service
            is specified.

            This field is a member of `oneof`_ ``_expected_output_url``.
        expected_redirect_response_code (int):
            For rules with urlRedirect, the test passes
            only if expectedRedirectResponseCode matches the
            HTTP status code in load balancer's redirect
            response. expectedRedirectResponseCode cannot be
            set when service is set.

            This field is a member of `oneof`_ ``_expected_redirect_response_code``.
        headers (MutableSequence[google.cloud.compute_v1beta.types.UrlMapTestHeader]):
            HTTP headers for this request. If headers
            contains a host header, then host must also
            match the header value.
        host (str):
            Host portion of the URL. If headers contains
            a host header, then host must also match the
            header value.

            This field is a member of `oneof`_ ``_host``.
        path (str):
            Path portion of the URL.

            This field is a member of `oneof`_ ``_path``.
        service (str):
            Expected BackendService or BackendBucket
            resource the given URL should be mapped to. The
            service field cannot be set if
            expectedRedirectResponseCode is set.

            This field is a member of `oneof`_ ``_service``.
    """

    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    expected_output_url: str = proto.Field(
        proto.STRING,
        number=433967384,
        optional=True,
    )
    expected_redirect_response_code: int = proto.Field(
        proto.INT32,
        number=18888047,
        optional=True,
    )
    headers: MutableSequence["UrlMapTestHeader"] = proto.RepeatedField(
        proto.MESSAGE,
        number=258436998,
        message="UrlMapTestHeader",
    )
    host: str = proto.Field(
        proto.STRING,
        number=3208616,
        optional=True,
    )
    path: str = proto.Field(
        proto.STRING,
        number=3433509,
        optional=True,
    )
    service: str = proto.Field(
        proto.STRING,
        number=373540533,
        optional=True,
    )


class UrlMapTestHeader(proto.Message):
    r"""HTTP headers used in UrlMapTests.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        name (str):
            Header name.

            This field is a member of `oneof`_ ``_name``.
        value (str):
            Header value.

            This field is a member of `oneof`_ ``_value``.
    """

    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    value: str = proto.Field(
        proto.STRING,
        number=111972721,
        optional=True,
    )


class UrlMapValidationResult(proto.Message):
    r"""Message representing the validation result for a UrlMap.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        load_errors (MutableSequence[str]):

        load_succeeded (bool):
            Whether the given UrlMap can be successfully
            loaded. If false, 'loadErrors' indicates the
            reasons.

            This field is a member of `oneof`_ ``_load_succeeded``.
        test_failures (MutableSequence[google.cloud.compute_v1beta.types.TestFailure]):

        test_passed (bool):
            If successfully loaded, this field indicates
            whether the test passed. If false,
            'testFailures's indicate the reason of failure.

            This field is a member of `oneof`_ ``_test_passed``.
    """

    load_errors: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=310147300,
    )
    load_succeeded: bool = proto.Field(
        proto.BOOL,
        number=128326216,
        optional=True,
    )
    test_failures: MutableSequence["TestFailure"] = proto.RepeatedField(
        proto.MESSAGE,
        number=505934134,
        message="TestFailure",
    )
    test_passed: bool = proto.Field(
        proto.BOOL,
        number=192708797,
        optional=True,
    )


class UrlMapsAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.UrlMapsScopedList]):
            A list of UrlMapsScopedList resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "UrlMapsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="UrlMapsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class UrlMapsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        url_maps (MutableSequence[google.cloud.compute_v1beta.types.UrlMap]):
            A list of UrlMaps contained in this scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of backend services when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    url_maps: MutableSequence["UrlMap"] = proto.RepeatedField(
        proto.MESSAGE,
        number=103352167,
        message="UrlMap",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class UrlMapsValidateRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        load_balancing_schemes (MutableSequence[str]):
            Specifies the load balancer type(s) this validation request
            is for. Use EXTERNAL_MANAGED for global external Application
            Load Balancers and regional external Application Load
            Balancers. Use EXTERNAL for classic Application Load
            Balancers. Use INTERNAL_MANAGED for internal Application
            Load Balancers. For more information, refer to Choosing a
            load balancer. If unspecified, the load balancing scheme
            will be inferred from the backend service resources this URL
            map references. If that can not be inferred (for example,
            this URL map only references backend buckets, or this Url
            map is for rewrites and redirects only and doesn't reference
            any backends), EXTERNAL will be used as the default type. If
            specified, the scheme(s) must not conflict with the load
            balancing scheme of the backend service resources this Url
            map references. Check the LoadBalancingSchemes enum for the
            list of possible values.
        resource (google.cloud.compute_v1beta.types.UrlMap):
            Content of the UrlMap to be validated.

            This field is a member of `oneof`_ ``_resource``.
    """

    class LoadBalancingSchemes(proto.Enum):
        r"""

        Values:
            UNDEFINED_LOAD_BALANCING_SCHEMES (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL (35607499):
                Signifies that this will be used for classic
                Application Load Balancers.
            EXTERNAL_MANAGED (512006923):
                Signifies that this will be used for
                Envoy-based global external Application Load
                Balancers.
            LOAD_BALANCING_SCHEME_UNSPECIFIED (526507452):
                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.
        """
        UNDEFINED_LOAD_BALANCING_SCHEMES = 0
        EXTERNAL = 35607499
        EXTERNAL_MANAGED = 512006923
        LOAD_BALANCING_SCHEME_UNSPECIFIED = 526507452

    load_balancing_schemes: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=6308527,
    )
    resource: "UrlMap" = proto.Field(
        proto.MESSAGE,
        number=195806222,
        optional=True,
        message="UrlMap",
    )


class UrlMapsValidateResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        result (google.cloud.compute_v1beta.types.UrlMapValidationResult):

            This field is a member of `oneof`_ ``_result``.
    """

    result: "UrlMapValidationResult" = proto.Field(
        proto.MESSAGE,
        number=139315229,
        optional=True,
        message="UrlMapValidationResult",
    )


class UrlRewrite(proto.Message):
    r"""The spec for modifying the path before sending the request to
    the matched backend service.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        host_rewrite (str):
            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.

            This field is a member of `oneof`_ ``_host_rewrite``.
        path_prefix_rewrite (str):
            Before forwarding the request to the selected
            backend service, the matching portion of the
            request's path is replaced by pathPrefixRewrite.
            The value must be from 1 to 1024 characters.

            This field is a member of `oneof`_ ``_path_prefix_rewrite``.
        path_template_rewrite (str):
            If specified, the pattern rewrites the URL path (based on
            the :path header) using the HTTP template syntax. A
            corresponding path_template_match must be specified. Any
            template variables must exist in the path_template_match
            field. - -At least one variable must be specified in the
            path_template_match field - You can omit variables from the
            rewritten URL - The \* and \*\* operators cannot be matched
            unless they have a corresponding variable name - e.g.
            {format=*} or {var=**}. For example, a path_template_match
            of /static/{format=**} could be rewritten as
            /static/content/{format} to prefix /content to the URL.
            Variables can also be re-ordered in a rewrite, so that
            /{country}/{format}/{suffix=**} can be rewritten as
            /content/{format}/{country}/{suffix}. At least one non-empty
            routeRules[].matchRules[].path_template_match is required.
            Only one of path_prefix_rewrite or path_template_rewrite may
            be specified.

            This field is a member of `oneof`_ ``_path_template_rewrite``.
    """

    host_rewrite: str = proto.Field(
        proto.STRING,
        number=159819253,
        optional=True,
    )
    path_prefix_rewrite: str = proto.Field(
        proto.STRING,
        number=41186361,
        optional=True,
    )
    path_template_rewrite: str = proto.Field(
        proto.STRING,
        number=423409569,
        optional=True,
    )


class UsableSubnetwork(proto.Message):
    r"""Subnetwork which the current user has compute.subnetworks.use
    permission on.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        external_ipv6_prefix (str):
            [Output Only] The external IPv6 address range that is
            assigned to this subnetwork.

            This field is a member of `oneof`_ ``_external_ipv6_prefix``.
        internal_ipv6_prefix (str):
            [Output Only] The internal IPv6 address range that is
            assigned to this subnetwork.

            This field is a member of `oneof`_ ``_internal_ipv6_prefix``.
        ip_cidr_range (str):
            The range of internal addresses that are
            owned by this subnetwork.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        ipv6_access_type (str):
            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.
            Check the Ipv6AccessType enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_ipv6_access_type``.
        network (str):
            Network URL.

            This field is a member of `oneof`_ ``_network``.
        purpose (str):
            Check the Purpose enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_purpose``.
        role (str):
            The role of subnetwork. Currently, this field is only used
            when purpose is set to GLOBAL_MANAGED_PROXY or
            REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or
            BACKUP. An ACTIVE subnetwork is one that is currently being
            used for Envoy-based load balancers in a region. A BACKUP
            subnetwork is one that is ready to be promoted to ACTIVE or
            is currently draining. This field can be updated with a
            patch request. Check the Role enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_role``.
        secondary_ip_ranges (MutableSequence[google.cloud.compute_v1beta.types.UsableSubnetworkSecondaryRange]):
            Secondary IP ranges.
        stack_type (str):
            The stack type for the subnet. If set to IPV4_ONLY, new VMs
            in the subnet are assigned IPv4 addresses only. If set to
            IPV4_IPV6, new VMs in the subnet can be assigned both IPv4
            and IPv6 addresses. If not specified, IPV4_ONLY is used.
            This field can be both set at resource creation time and
            updated using patch. Check the StackType enum for the list
            of possible values.

            This field is a member of `oneof`_ ``_stack_type``.
        subnetwork (str):
            Subnetwork URL.

            This field is a member of `oneof`_ ``_subnetwork``.
    """

    class Ipv6AccessType(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_IPV6_ACCESS_TYPE (0):
                A value indicating that the enum field is not
                set.
            EXTERNAL (35607499):
                VMs on this subnet will be assigned IPv6
                addresses that are accessible via the Internet,
                as well as the VPC network.
            INTERNAL (279295677):
                VMs on this subnet will be assigned IPv6
                addresses that are only accessible over the VPC
                network.
        """
        UNDEFINED_IPV6_ACCESS_TYPE = 0
        EXTERNAL = 35607499
        INTERNAL = 279295677

    class Purpose(proto.Enum):
        r"""

        Values:
            UNDEFINED_PURPOSE (0):
                A value indicating that the enum field is not
                set.
            GLOBAL_MANAGED_PROXY (236463602):
                Subnet reserved for Global Envoy-based Load
                Balancing.
            INTERNAL_HTTPS_LOAD_BALANCER (248748889):
                Subnet reserved for Internal HTTP(S) Load Balancing. This is
                a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.
            PEER_MIGRATION (491902225):
                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 (403485027):
                Regular user created or automatically created
                subnet.
            PRIVATE_NAT (367764517):
                Subnetwork used as source range for Private
                NAT Gateways.
            PRIVATE_RFC_1918 (254902107):
                Regular user created or automatically created
                subnet.
            PRIVATE_SERVICE_CONNECT (48134724):
                Subnetworks created for Private Service
                Connect in the producer network.
            REGIONAL_MANAGED_PROXY (153049966):
                Subnetwork used for Regional Envoy-based Load
                Balancing.
        """
        UNDEFINED_PURPOSE = 0
        GLOBAL_MANAGED_PROXY = 236463602
        INTERNAL_HTTPS_LOAD_BALANCER = 248748889
        PEER_MIGRATION = 491902225
        PRIVATE = 403485027
        PRIVATE_NAT = 367764517
        PRIVATE_RFC_1918 = 254902107
        PRIVATE_SERVICE_CONNECT = 48134724
        REGIONAL_MANAGED_PROXY = 153049966

    class Role(proto.Enum):
        r"""The role of subnetwork. Currently, this field is only used when
        purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.
        The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is
        one that is currently being used for Envoy-based load balancers in a
        region. A BACKUP subnetwork is one that is ready to be promoted to
        ACTIVE or is currently draining. This field can be updated with a
        patch request.

        Values:
            UNDEFINED_ROLE (0):
                A value indicating that the enum field is not
                set.
            ACTIVE (314733318):
                The ACTIVE subnet that is currently used.
            BACKUP (341010882):
                The BACKUP subnet that could be promoted to
                ACTIVE.
        """
        UNDEFINED_ROLE = 0
        ACTIVE = 314733318
        BACKUP = 341010882

    class StackType(proto.Enum):
        r"""The stack type for the subnet. If set to IPV4_ONLY, new VMs in the
        subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new
        VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If
        not specified, IPV4_ONLY is used. This field can be both set at
        resource creation time and updated using patch.

        Values:
            UNDEFINED_STACK_TYPE (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                New VMs in this subnet can have both IPv4 and
                IPv6 addresses.
            IPV4_ONLY (22373798):
                New VMs in this subnet will only be assigned
                IPv4 addresses.
            IPV6_ONLY (79632100):
                New VMs in this subnet will only be assigned
                IPv6 addresses.
        """
        UNDEFINED_STACK_TYPE = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798
        IPV6_ONLY = 79632100

    external_ipv6_prefix: str = proto.Field(
        proto.STRING,
        number=139299190,
        optional=True,
    )
    internal_ipv6_prefix: str = proto.Field(
        proto.STRING,
        number=506270056,
        optional=True,
    )
    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    ipv6_access_type: str = proto.Field(
        proto.STRING,
        number=504658653,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    purpose: str = proto.Field(
        proto.STRING,
        number=316407070,
        optional=True,
    )
    role: str = proto.Field(
        proto.STRING,
        number=3506294,
        optional=True,
    )
    secondary_ip_ranges: MutableSequence[
        "UsableSubnetworkSecondaryRange"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=136658915,
        message="UsableSubnetworkSecondaryRange",
    )
    stack_type: str = proto.Field(
        proto.STRING,
        number=425908881,
        optional=True,
    )
    subnetwork: str = proto.Field(
        proto.STRING,
        number=307827694,
        optional=True,
    )


class UsableSubnetworkSecondaryRange(proto.Message):
    r"""Secondary IP range of a usable subnetwork.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        ip_cidr_range (str):
            The range of IP addresses belonging to this
            subnetwork secondary range.

            This field is a member of `oneof`_ ``_ip_cidr_range``.
        range_name (str):
            The name associated with this subnetwork
            secondary range, used when adding an alias IP
            range to a VM instance. The name must be 1-63
            characters long, and comply with RFC1035. The
            name must be unique within the subnetwork.

            This field is a member of `oneof`_ ``_range_name``.
    """

    ip_cidr_range: str = proto.Field(
        proto.STRING,
        number=98117322,
        optional=True,
    )
    range_name: str = proto.Field(
        proto.STRING,
        number=332216397,
        optional=True,
    )


class UsableSubnetworksAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.UsableSubnetwork]):
            [Output] A list of usable subnetwork URLs.
        kind (str):
            [Output Only] Type of resource. Always
            compute#usableSubnetworksAggregatedList for aggregated lists
            of usable subnetworks.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [Output Only] This token allows you to get the next page of
            results for list requests. If the number of results is
            larger than maxResults, use the nextPageToken as a value for
            the query parameter pageToken in the next list request.
            Subsequent list requests will have their own nextPageToken
            to continue paging through the results. In special cases
            listUsable may return 0 subnetworks and nextPageToken which
            still should be used to get the next page of results.

            This field is a member of `oneof`_ ``_next_page_token``.
        scoped_warnings (MutableSequence[google.cloud.compute_v1beta.types.SubnetworksScopedWarning]):
            [Output Only] Informational warning messages for failures
            encountered from scopes.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["UsableSubnetwork"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="UsableSubnetwork",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    scoped_warnings: MutableSequence["SubnetworksScopedWarning"] = proto.RepeatedField(
        proto.MESSAGE,
        number=215878438,
        message="SubnetworksScopedWarning",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class UsageExportLocation(proto.Message):
    r"""The location in Cloud Storage and naming method of the daily usage
    report. Contains bucket_name and report_name prefix.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bucket_name (str):
            The name of an existing bucket in Cloud
            Storage where the usage report object is stored.
            The Google Service Account is granted write
            access to this bucket. This can either be the
            bucket name by itself, such as example-bucket,
            or the bucket name with gs:// or
            https://storage.googleapis.com/ in front of it,
            such as gs://example-bucket.

            This field is a member of `oneof`_ ``_bucket_name``.
        report_name_prefix (str):
            An optional prefix for the name of the usage report object
            stored in bucketName. If not supplied, defaults to
            usage_gce. The report is stored as a CSV file named
            report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the
            day of the usage according to Pacific Time. If you supply a
            prefix, it should conform to Cloud Storage object naming
            conventions.

            This field is a member of `oneof`_ ``_report_name_prefix``.
    """

    bucket_name: str = proto.Field(
        proto.STRING,
        number=283610048,
        optional=True,
    )
    report_name_prefix: str = proto.Field(
        proto.STRING,
        number=320198715,
        optional=True,
    )


class ValidateRegionUrlMapRequest(proto.Message):
    r"""A request message for RegionUrlMaps.Validate. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        region (str):
            Name of the region scoping this request.
        region_url_maps_validate_request_resource (google.cloud.compute_v1beta.types.RegionUrlMapsValidateRequest):
            The body resource for this request
        url_map (str):
            Name of the UrlMap resource to be validated
            as.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    region_url_maps_validate_request_resource: "RegionUrlMapsValidateRequest" = (
        proto.Field(
            proto.MESSAGE,
            number=56632858,
            message="RegionUrlMapsValidateRequest",
        )
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )


class ValidateUrlMapRequest(proto.Message):
    r"""A request message for UrlMaps.Validate. See the method
    description for details.

    Attributes:
        project (str):
            Project ID for this request.
        url_map (str):
            Name of the UrlMap resource to be validated
            as.
        url_maps_validate_request_resource (google.cloud.compute_v1beta.types.UrlMapsValidateRequest):
            The body resource for this request
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    url_map: str = proto.Field(
        proto.STRING,
        number=367020684,
    )
    url_maps_validate_request_resource: "UrlMapsValidateRequest" = proto.Field(
        proto.MESSAGE,
        number=395913455,
        message="UrlMapsValidateRequest",
    )


class VmEndpointNatMappings(proto.Message):
    r"""Contain information of Nat mapping for a VM endpoint (i.e.,
    NIC).


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        instance_name (str):
            Name of the VM instance which the endpoint
            belongs to

            This field is a member of `oneof`_ ``_instance_name``.
        interface_nat_mappings (MutableSequence[google.cloud.compute_v1beta.types.VmEndpointNatMappingsInterfaceNatMappings]):

    """

    instance_name: str = proto.Field(
        proto.STRING,
        number=227947509,
        optional=True,
    )
    interface_nat_mappings: MutableSequence[
        "VmEndpointNatMappingsInterfaceNatMappings"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=256196617,
        message="VmEndpointNatMappingsInterfaceNatMappings",
    )


class VmEndpointNatMappingsInterfaceNatMappings(proto.Message):
    r"""Contain information of Nat mapping for an interface of this
    endpoint.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        drain_nat_ip_port_ranges (MutableSequence[str]):
            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"].
        nat_ip_port_ranges (MutableSequence[str]):
            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"].
        num_total_drain_nat_ports (int):
            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.

            This field is a member of `oneof`_ ``_num_total_drain_nat_ports``.
        num_total_nat_ports (int):
            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.

            This field is a member of `oneof`_ ``_num_total_nat_ports``.
        rule_mappings (MutableSequence[google.cloud.compute_v1beta.types.VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings]):
            Information about mappings provided by rules
            in this NAT.
        source_alias_ip_range (str):
            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".

            This field is a member of `oneof`_ ``_source_alias_ip_range``.
        source_virtual_ip (str):
            Primary IP of the VM for this NIC.

            This field is a member of `oneof`_ ``_source_virtual_ip``.
    """

    drain_nat_ip_port_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=395440577,
    )
    nat_ip_port_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=531830810,
    )
    num_total_drain_nat_ports: int = proto.Field(
        proto.INT32,
        number=335532793,
        optional=True,
    )
    num_total_nat_ports: int = proto.Field(
        proto.INT32,
        number=299904384,
        optional=True,
    )
    rule_mappings: MutableSequence[
        "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=486192968,
        message="VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings",
    )
    source_alias_ip_range: str = proto.Field(
        proto.STRING,
        number=440340952,
        optional=True,
    )
    source_virtual_ip: str = proto.Field(
        proto.STRING,
        number=149836159,
        optional=True,
    )


class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings(proto.Message):
    r"""Contains information of NAT Mappings provided by a NAT Rule.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        drain_nat_ip_port_ranges (MutableSequence[str]):
            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"].
        nat_ip_port_ranges (MutableSequence[str]):
            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"].
        num_total_drain_nat_ports (int):
            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.

            This field is a member of `oneof`_ ``_num_total_drain_nat_ports``.
        num_total_nat_ports (int):
            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.

            This field is a member of `oneof`_ ``_num_total_nat_ports``.
        rule_number (int):
            Rule number of the NAT Rule.

            This field is a member of `oneof`_ ``_rule_number``.
    """

    drain_nat_ip_port_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=395440577,
    )
    nat_ip_port_ranges: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=531830810,
    )
    num_total_drain_nat_ports: int = proto.Field(
        proto.INT32,
        number=335532793,
        optional=True,
    )
    num_total_nat_ports: int = proto.Field(
        proto.INT32,
        number=299904384,
        optional=True,
    )
    rule_number: int = proto.Field(
        proto.INT32,
        number=535211500,
        optional=True,
    )


class VmEndpointNatMappingsList(proto.Message):
    r"""Contains a list of VmEndpointNatMappings.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always
            compute#vmEndpointNatMappingsList for lists of Nat mappings
            of VM endpoints.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        result (MutableSequence[google.cloud.compute_v1beta.types.VmEndpointNatMappings]):
            [Output Only] A list of Nat mapping information of VM
            endpoints.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    result: MutableSequence["VmEndpointNatMappings"] = proto.RepeatedField(
        proto.MESSAGE,
        number=139315229,
        message="VmEndpointNatMappings",
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class VpnGateway(proto.Message):
    r"""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 .


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        gateway_ip_version (str):
            The IP family of the gateway IPs for the
            HA-VPN gateway interfaces. If not specified,
            IPV4 will be used. Check the GatewayIpVersion
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_gateway_ip_version``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of resource. Always compute#vpnGateway
            for VPN gateways.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this VpnGateway, which is essentially a hash of
            the labels set used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash in order to update
            or change labels, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve a VpnGateway.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        network (str):
            URL of the network to which this VPN gateway
            is attached. Provided by the client when the VPN
            gateway is created.

            This field is a member of `oneof`_ ``_network``.
        region (str):
            [Output Only] URL of the region where the VPN gateway
            resides.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        stack_type (str):
            The stack type for this VPN gateway to identify the IP
            protocols that are enabled. Possible values are: IPV4_ONLY,
            IPV4_IPV6, IPV6_ONLY. If not specified, IPV4_ONLY is used if
            the gateway IP version is IPV4, or IPV4_IPV6 if the gateway
            IP version is IPV6. Check the StackType enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_stack_type``.
        vpn_interfaces (MutableSequence[google.cloud.compute_v1beta.types.VpnGatewayVpnGatewayInterface]):
            The list of VPN interfaces associated with
            this VPN gateway.
    """

    class GatewayIpVersion(proto.Enum):
        r"""The IP family of the gateway IPs for the HA-VPN gateway
        interfaces. If not specified, IPV4 will be used.

        Values:
            UNDEFINED_GATEWAY_IP_VERSION (0):
                A value indicating that the enum field is not
                set.
            IPV4 (2254341):
                Every HA-VPN gateway interface is configured
                with an IPv4 address.
            IPV6 (2254343):
                Every HA-VPN gateway interface is configured
                with an IPv6 address.
        """
        UNDEFINED_GATEWAY_IP_VERSION = 0
        IPV4 = 2254341
        IPV6 = 2254343

    class StackType(proto.Enum):
        r"""The stack type for this VPN gateway to identify the IP protocols
        that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6,
        IPV6_ONLY. If not specified, IPV4_ONLY is used if the gateway IP
        version is IPV4, or IPV4_IPV6 if the gateway IP version is IPV6.

        Values:
            UNDEFINED_STACK_TYPE (0):
                A value indicating that the enum field is not
                set.
            IPV4_IPV6 (22197249):
                Enable VPN gateway with both IPv4 and IPv6
                protocols.
            IPV4_ONLY (22373798):
                Enable VPN gateway with only IPv4 protocol.
            IPV6_ONLY (79632100):
                Enable VPN gateway with only IPv6 protocol.
        """
        UNDEFINED_STACK_TYPE = 0
        IPV4_IPV6 = 22197249
        IPV4_ONLY = 22373798
        IPV6_ONLY = 79632100

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    gateway_ip_version: str = proto.Field(
        proto.STRING,
        number=65074843,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    network: str = proto.Field(
        proto.STRING,
        number=232872494,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    stack_type: str = proto.Field(
        proto.STRING,
        number=425908881,
        optional=True,
    )
    vpn_interfaces: MutableSequence[
        "VpnGatewayVpnGatewayInterface"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=91842181,
        message="VpnGatewayVpnGatewayInterface",
    )


class VpnGatewayAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.VpnGatewaysScopedList]):
            A list of VpnGateway resources.
        kind (str):
            [Output Only] Type of resource. Always compute#vpnGateway
            for VPN gateways.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "VpnGatewaysScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="VpnGatewaysScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class VpnGatewayList(proto.Message):
    r"""Contains a list of VpnGateway resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.VpnGateway]):
            A list of VpnGateway resources.
        kind (str):
            [Output Only] Type of resource. Always compute#vpnGateway
            for VPN gateways.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["VpnGateway"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="VpnGateway",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class VpnGatewayStatus(proto.Message):
    r"""

    Attributes:
        vpn_connections (MutableSequence[google.cloud.compute_v1beta.types.VpnGatewayStatusVpnConnection]):
            List of VPN connection for this VpnGateway.
    """

    vpn_connections: MutableSequence[
        "VpnGatewayStatusVpnConnection"
    ] = proto.RepeatedField(
        proto.MESSAGE,
        number=439334538,
        message="VpnGatewayStatusVpnConnection",
    )


class VpnGatewayStatusHighAvailabilityRequirementState(proto.Message):
    r"""Describes the high availability requirement state for the VPN
    connection between this Cloud VPN gateway and a peer gateway.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        state (str):
            Indicates the high availability requirement state for the
            VPN connection. Valid values are CONNECTION_REDUNDANCY_MET,
            CONNECTION_REDUNDANCY_NOT_MET. Check the State enum for the
            list of possible values.

            This field is a member of `oneof`_ ``_state``.
        unsatisfied_reason (str):
            Indicates the reason why the VPN connection does not meet
            the high availability redundancy criteria/requirement. Valid
            values is INCOMPLETE_TUNNELS_COVERAGE. Check the
            UnsatisfiedReason enum for the list of possible values.

            This field is a member of `oneof`_ ``_unsatisfied_reason``.
    """

    class State(proto.Enum):
        r"""Indicates the high availability requirement state for the VPN
        connection. Valid values are CONNECTION_REDUNDANCY_MET,
        CONNECTION_REDUNDANCY_NOT_MET.

        Values:
            UNDEFINED_STATE (0):
                A value indicating that the enum field is not
                set.
            CONNECTION_REDUNDANCY_MET (505242907):
                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 (511863311):
                VPN tunnels are not configured with adequate
                redundancy from the Cloud VPN gateway to the
                peer gateway
        """
        UNDEFINED_STATE = 0
        CONNECTION_REDUNDANCY_MET = 505242907
        CONNECTION_REDUNDANCY_NOT_MET = 511863311

    class UnsatisfiedReason(proto.Enum):
        r"""Indicates the reason why the VPN connection does not meet the high
        availability redundancy criteria/requirement. Valid values is
        INCOMPLETE_TUNNELS_COVERAGE.

        Values:
            UNDEFINED_UNSATISFIED_REASON (0):
                A value indicating that the enum field is not
                set.
            INCOMPLETE_TUNNELS_COVERAGE (55917437):
                No description available.
        """
        UNDEFINED_UNSATISFIED_REASON = 0
        INCOMPLETE_TUNNELS_COVERAGE = 55917437

    state: str = proto.Field(
        proto.STRING,
        number=109757585,
        optional=True,
    )
    unsatisfied_reason: str = proto.Field(
        proto.STRING,
        number=55016330,
        optional=True,
    )


class VpnGatewayStatusTunnel(proto.Message):
    r"""Contains some information about a VPN tunnel.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        local_gateway_interface (int):
            The VPN gateway interface this VPN tunnel is
            associated with.

            This field is a member of `oneof`_ ``_local_gateway_interface``.
        peer_gateway_interface (int):
            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.

            This field is a member of `oneof`_ ``_peer_gateway_interface``.
        tunnel_url (str):
            URL reference to the VPN tunnel.

            This field is a member of `oneof`_ ``_tunnel_url``.
    """

    local_gateway_interface: int = proto.Field(
        proto.UINT32,
        number=158764330,
        optional=True,
    )
    peer_gateway_interface: int = proto.Field(
        proto.UINT32,
        number=214380385,
        optional=True,
    )
    tunnel_url: str = proto.Field(
        proto.STRING,
        number=78975256,
        optional=True,
    )


class VpnGatewayStatusVpnConnection(proto.Message):
    r"""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.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        peer_external_gateway (str):
            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.

            This field is a member of `oneof`_ ``_peer_external_gateway``.
        peer_gcp_gateway (str):
            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.

            This field is a member of `oneof`_ ``_peer_gcp_gateway``.
        state (google.cloud.compute_v1beta.types.VpnGatewayStatusHighAvailabilityRequirementState):
            HighAvailabilityRequirementState for the VPN
            connection.

            This field is a member of `oneof`_ ``_state``.
        tunnels (MutableSequence[google.cloud.compute_v1beta.types.VpnGatewayStatusTunnel]):
            List of VPN tunnels that are in this VPN
            connection.
    """

    peer_external_gateway: str = proto.Field(
        proto.STRING,
        number=384956173,
        optional=True,
    )
    peer_gcp_gateway: str = proto.Field(
        proto.STRING,
        number=281867452,
        optional=True,
    )
    state: "VpnGatewayStatusHighAvailabilityRequirementState" = proto.Field(
        proto.MESSAGE,
        number=109757585,
        optional=True,
        message="VpnGatewayStatusHighAvailabilityRequirementState",
    )
    tunnels: MutableSequence["VpnGatewayStatusTunnel"] = proto.RepeatedField(
        proto.MESSAGE,
        number=104561931,
        message="VpnGatewayStatusTunnel",
    )


class VpnGatewayVpnGatewayInterface(proto.Message):
    r"""A VPN gateway interface.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (int):
            [Output Only] Numeric identifier for this VPN interface
            associated with the VPN gateway.

            This field is a member of `oneof`_ ``_id``.
        interconnect_attachment (str):
            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.

            This field is a member of `oneof`_ ``_interconnect_attachment``.
        ip_address (str):
            [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.

            This field is a member of `oneof`_ ``_ip_address``.
        ipv6_address (str):
            [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).

            This field is a member of `oneof`_ ``_ipv6_address``.
    """

    id: int = proto.Field(
        proto.UINT32,
        number=3355,
        optional=True,
    )
    interconnect_attachment: str = proto.Field(
        proto.STRING,
        number=308135284,
        optional=True,
    )
    ip_address: str = proto.Field(
        proto.STRING,
        number=406272220,
        optional=True,
    )
    ipv6_address: str = proto.Field(
        proto.STRING,
        number=341563804,
        optional=True,
    )


class VpnGatewaysGetStatusResponse(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        result (google.cloud.compute_v1beta.types.VpnGatewayStatus):

            This field is a member of `oneof`_ ``_result``.
    """

    result: "VpnGatewayStatus" = proto.Field(
        proto.MESSAGE,
        number=139315229,
        optional=True,
        message="VpnGatewayStatus",
    )


class VpnGatewaysScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        vpn_gateways (MutableSequence[google.cloud.compute_v1beta.types.VpnGateway]):
            [Output Only] A list of VPN gateways contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning which replaces the list
            of addresses when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    vpn_gateways: MutableSequence["VpnGateway"] = proto.RepeatedField(
        proto.MESSAGE,
        number=259177882,
        message="VpnGateway",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class VpnTunnel(proto.Message):
    r"""Represents a Cloud VPN Tunnel resource. For more information
    about VPN, read the the Cloud VPN Overview.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of this resource.
            Provide this property when you create the
            resource.

            This field is a member of `oneof`_ ``_description``.
        detailed_status (str):
            [Output Only] Detailed status message for the VPN tunnel.

            This field is a member of `oneof`_ ``_detailed_status``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        ike_version (int):
            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.

            This field is a member of `oneof`_ ``_ike_version``.
        kind (str):
            [Output Only] Type of resource. Always compute#vpnTunnel for
            VPN tunnels.

            This field is a member of `oneof`_ ``_kind``.
        label_fingerprint (str):
            A fingerprint for the labels being applied to
            this VpnTunnel, which is essentially a hash of
            the labels set used for optimistic locking. The
            fingerprint is initially generated by Compute
            Engine and changes after every request to modify
            or update labels. You must always provide an
            up-to-date fingerprint hash in order to update
            or change labels, otherwise the request will
            fail with error 412 conditionNotMet. To see the
            latest fingerprint, make a get() request to
            retrieve a VpnTunnel.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            Labels for this resource. These can only be
            added or modified by the setLabels method. Each
            label key/value pair must comply with RFC1035.
            Label values may be empty.
        local_traffic_selector (MutableSequence[str]):
            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.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        peer_external_gateway (str):
            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.

            This field is a member of `oneof`_ ``_peer_external_gateway``.
        peer_external_gateway_interface (int):
            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.

            This field is a member of `oneof`_ ``_peer_external_gateway_interface``.
        peer_gcp_gateway (str):
            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.

            This field is a member of `oneof`_ ``_peer_gcp_gateway``.
        peer_ip (str):
            IP address of the peer VPN gateway. Only IPv4
            is supported. This field can be set only for
            Classic VPN tunnels.

            This field is a member of `oneof`_ ``_peer_ip``.
        region (str):
            [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.

            This field is a member of `oneof`_ ``_region``.
        remote_traffic_selector (MutableSequence[str]):
            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.
        router (str):
            URL of the router resource to be used for
            dynamic routing.

            This field is a member of `oneof`_ ``_router``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        shared_secret (str):
            Shared secret used to set the secure session
            between the Cloud VPN gateway and the peer VPN
            gateway.

            This field is a member of `oneof`_ ``_shared_secret``.
        shared_secret_hash (str):
            Hash of the shared secret.

            This field is a member of `oneof`_ ``_shared_secret_hash``.
        status (str):
            [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. Check
            the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        target_vpn_gateway (str):
            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.

            This field is a member of `oneof`_ ``_target_vpn_gateway``.
        vpn_gateway (str):
            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.

            This field is a member of `oneof`_ ``_vpn_gateway``.
        vpn_gateway_interface (int):
            The interface ID of the VPN gateway with which this VPN
            tunnel is associated. Possible values are: ``0``, ``1``.

            This field is a member of `oneof`_ ``_vpn_gateway_interface``.
    """

    class Status(proto.Enum):
        r"""[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.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            ALLOCATING_RESOURCES (320922816):
                Cloud VPN is in the process of allocating all
                required resources (specifically, a borg task).
            AUTHORIZATION_ERROR (23580290):
                Auth error (e.g. bad shared secret).
            DEPROVISIONING (428935662):
                Resources is being deallocated for the VPN
                tunnel.
            ESTABLISHED (88852344):
                Secure session is successfully established
                with peer VPN.
            FAILED (455706685):
                Tunnel creation has failed and the tunnel is
                not ready to be used.
            FIRST_HANDSHAKE (191393000):
                Successful first handshake with peer VPN.
            NEGOTIATION_FAILURE (360325868):
                Handshake failed.
            NETWORK_ERROR (193912951):
                Deprecated, replaced by NO_INCOMING_PACKETS
            NO_INCOMING_PACKETS (119983216):
                No incoming packets from peer
            PROVISIONING (290896621):
                Resource is being allocated for the VPN
                tunnel.
            REJECTED (174130302):
                Tunnel configuration was rejected, can be
                result of being denylisted.
            STOPPED (444276141):
                Tunnel is stopped due to its Forwarding Rules
                being deleted.
            WAITING_FOR_FULL_CONFIG (41640522):
                Waiting to receive all VPN-related configs
                from user. Network, TargetVpnGateway, VpnTunnel,
                ForwardingRule and Route resources are needed to
                setup VPN tunnel.
        """
        UNDEFINED_STATUS = 0
        ALLOCATING_RESOURCES = 320922816
        AUTHORIZATION_ERROR = 23580290
        DEPROVISIONING = 428935662
        ESTABLISHED = 88852344
        FAILED = 455706685
        FIRST_HANDSHAKE = 191393000
        NEGOTIATION_FAILURE = 360325868
        NETWORK_ERROR = 193912951
        NO_INCOMING_PACKETS = 119983216
        PROVISIONING = 290896621
        REJECTED = 174130302
        STOPPED = 444276141
        WAITING_FOR_FULL_CONFIG = 41640522

    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    detailed_status: str = proto.Field(
        proto.STRING,
        number=333501025,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    ike_version: int = proto.Field(
        proto.INT32,
        number=218376220,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )
    local_traffic_selector: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=317314613,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    peer_external_gateway: str = proto.Field(
        proto.STRING,
        number=384956173,
        optional=True,
    )
    peer_external_gateway_interface: int = proto.Field(
        proto.INT32,
        number=452768391,
        optional=True,
    )
    peer_gcp_gateway: str = proto.Field(
        proto.STRING,
        number=281867452,
        optional=True,
    )
    peer_ip: str = proto.Field(
        proto.STRING,
        number=383249700,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    remote_traffic_selector: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=358887098,
    )
    router: str = proto.Field(
        proto.STRING,
        number=148608841,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    shared_secret: str = proto.Field(
        proto.STRING,
        number=381932490,
        optional=True,
    )
    shared_secret_hash: str = proto.Field(
        proto.STRING,
        number=398881891,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    target_vpn_gateway: str = proto.Field(
        proto.STRING,
        number=532512843,
        optional=True,
    )
    vpn_gateway: str = proto.Field(
        proto.STRING,
        number=406684153,
        optional=True,
    )
    vpn_gateway_interface: int = proto.Field(
        proto.INT32,
        number=95979123,
        optional=True,
    )


class VpnTunnelAggregatedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableMapping[str, google.cloud.compute_v1beta.types.VpnTunnelsScopedList]):
            A list of VpnTunnelsScopedList resources.
        kind (str):
            [Output Only] Type of resource. Always compute#vpnTunnel for
            VPN tunnels.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableMapping[str, "VpnTunnelsScopedList"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=100526016,
        message="VpnTunnelsScopedList",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class VpnTunnelList(proto.Message):
    r"""Contains a list of VpnTunnel resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.VpnTunnel]):
            A list of VpnTunnel resources.
        kind (str):
            [Output Only] Type of resource. Always compute#vpnTunnel for
            VPN tunnels.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["VpnTunnel"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="VpnTunnel",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class VpnTunnelsScopedList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        vpn_tunnels (MutableSequence[google.cloud.compute_v1beta.types.VpnTunnel]):
            A list of VPN tunnels contained in this
            scope.
        warning (google.cloud.compute_v1beta.types.Warning):
            Informational warning which replaces the list
            of addresses when the list is empty.

            This field is a member of `oneof`_ ``_warning``.
    """

    vpn_tunnels: MutableSequence["VpnTunnel"] = proto.RepeatedField(
        proto.MESSAGE,
        number=163494080,
        message="VpnTunnel",
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class WafExpressionSet(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        aliases (MutableSequence[str]):
            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.
        expressions (MutableSequence[google.cloud.compute_v1beta.types.WafExpressionSetExpression]):
            List of available expressions.
        id (str):
            Google specified expression set ID. The
            format should be: - E.g. XSS-20170329 required

            This field is a member of `oneof`_ ``_id``.
    """

    aliases: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=159207166,
    )
    expressions: MutableSequence["WafExpressionSetExpression"] = proto.RepeatedField(
        proto.MESSAGE,
        number=175554779,
        message="WafExpressionSetExpression",
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )


class WafExpressionSetExpression(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            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

            This field is a member of `oneof`_ ``_id``.
        sensitivity (int):
            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.

            This field is a member of `oneof`_ ``_sensitivity``.
    """

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    sensitivity: int = proto.Field(
        proto.INT32,
        number=27532959,
        optional=True,
    )


class WaitGlobalOperationRequest(proto.Message):
    r"""A request message for GlobalOperations.Wait. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to return, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )


class WaitRegionOperationRequest(proto.Message):
    r"""A request message for RegionOperations.Wait. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to return, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
        region (str):
            Name of the region for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )


class WaitZoneOperationRequest(proto.Message):
    r"""A request message for ZoneOperations.Wait. See the method
    description for details.

    Attributes:
        operation (str):
            Name of the Operations resource to return, or
            its unique numeric identifier.
        project (str):
            Project ID for this request.
        zone (str):
            Name of the zone for this request.
    """

    operation: str = proto.Field(
        proto.STRING,
        number=52090215,
    )
    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    zone: str = proto.Field(
        proto.STRING,
        number=3744684,
    )


class Warning(proto.Message):
    r"""Informational warning message.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (str):
            [Output Only] A warning code, if applicable. For example,
            Compute Engine returns NO_RESULTS_ON_PAGE if there are no
            results in the response. Check the Code enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_code``.
        data (MutableSequence[google.cloud.compute_v1beta.types.Data]):
            [Output Only] Metadata about this warning in key: value
            format. For example: "data": [ { "key": "scope", "value":
            "zones/us-east1-d" }
        message (str):
            [Output Only] A human-readable description of the warning
            code.

            This field is a member of `oneof`_ ``_message``.
    """

    class Code(proto.Enum):
        r"""[Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.

        Values:
            UNDEFINED_CODE (0):
                A value indicating that the enum field is not
                set.
            CLEANUP_FAILED (150308440):
                Warning about failed cleanup of transient
                changes made by a failed operation.
            DEPRECATED_RESOURCE_USED (391835586):
                A link to a deprecated resource was created.
            DEPRECATED_TYPE_USED (346526230):
                When deploying and at least one of the
                resources has a type marked as deprecated
            DISK_SIZE_LARGER_THAN_IMAGE_SIZE (369442967):
                The user created a boot disk that is larger
                than image size.
            EXPERIMENTAL_TYPE_USED (451954443):
                When deploying and at least one of the
                resources has a type marked as experimental
            EXTERNAL_API_WARNING (175546307):
                Warning that is present in an external api
                call
            FIELD_VALUE_OVERRIDEN (329669423):
                Warning that value of a field has been
                overridden. Deprecated unused field.
            INJECTED_KERNELS_DEPRECATED (417377419):
                The operation involved use of an injected
                kernel, which is deprecated.
            INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB (401542606):
                A WEIGHTED_MAGLEV backend service is associated with a
                health check that is not of type HTTP/HTTPS/HTTP2.
            LARGE_DEPLOYMENT_WARNING (481440678):
                When deploying a deployment with a
                exceedingly large number of resources
            LIST_OVERHEAD_QUOTA_EXCEED (47618117):
                Resource can't be retrieved due to list
                overhead quota exceed which captures the amount
                of resources filtered out by user-defined list
                filter.
            MISSING_TYPE_DEPENDENCY (344505463):
                A resource depends on a missing type
            NEXT_HOP_ADDRESS_NOT_ASSIGNED (324964999):
                The route's nextHopIp address is not assigned
                to an instance on the network.
            NEXT_HOP_CANNOT_IP_FORWARD (383382887):
                The route's next hop instance cannot ip
                forward.
            NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE (146748434):
                The route's nextHopInstance URL refers to an
                instance that does not have an ipv6 interface on
                the same network as the route.
            NEXT_HOP_INSTANCE_NOT_FOUND (464250446):
                The route's nextHopInstance URL refers to an
                instance that does not exist.
            NEXT_HOP_INSTANCE_NOT_ON_NETWORK (243758146):
                The route's nextHopInstance URL refers to an
                instance that is not on the same network as the
                route.
            NEXT_HOP_NOT_RUNNING (417081265):
                The route's next hop instance does not have a
                status of RUNNING.
            NOT_CRITICAL_ERROR (105763924):
                Error which is not critical. We decided to
                continue the process despite the mentioned
                error.
            NO_RESULTS_ON_PAGE (30036744):
                No results are present on a particular list
                page.
            PARTIAL_SUCCESS (39966469):
                Success is reported, but some results may be
                missing due to errors
            QUOTA_INFO_UNAVAILABLE (304294182):
                Quota information is not available to client
                requests (e.g: regions.list).
            REQUIRED_TOS_AGREEMENT (3745539):
                The user attempted to use a resource that
                requires a TOS they have not accepted.
            RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING (496728641):
                Warning that a resource is in use.
            RESOURCE_NOT_DELETED (168598460):
                One or more of the resources set to
                auto-delete could not be deleted because they
                were in use.
            SCHEMA_VALIDATION_IGNORED (275245642):
                When a resource schema validation is ignored.
            SINGLE_INSTANCE_PROPERTY_TEMPLATE (268305617):
                Instance template used in instance group
                manager is valid as such, but its application
                does not make a lot of sense, because it allows
                only single instance in instance group.
            UNDECLARED_PROPERTIES (390513439):
                When undeclared properties in the schema are
                present
            UNREACHABLE (13328052):
                A given scope cannot be reached.
        """
        UNDEFINED_CODE = 0
        CLEANUP_FAILED = 150308440
        DEPRECATED_RESOURCE_USED = 391835586
        DEPRECATED_TYPE_USED = 346526230
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967
        EXPERIMENTAL_TYPE_USED = 451954443
        EXTERNAL_API_WARNING = 175546307
        FIELD_VALUE_OVERRIDEN = 329669423
        INJECTED_KERNELS_DEPRECATED = 417377419
        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606
        LARGE_DEPLOYMENT_WARNING = 481440678
        LIST_OVERHEAD_QUOTA_EXCEED = 47618117
        MISSING_TYPE_DEPENDENCY = 344505463
        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999
        NEXT_HOP_CANNOT_IP_FORWARD = 383382887
        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434
        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146
        NEXT_HOP_NOT_RUNNING = 417081265
        NOT_CRITICAL_ERROR = 105763924
        NO_RESULTS_ON_PAGE = 30036744
        PARTIAL_SUCCESS = 39966469
        QUOTA_INFO_UNAVAILABLE = 304294182
        REQUIRED_TOS_AGREEMENT = 3745539
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641
        RESOURCE_NOT_DELETED = 168598460
        SCHEMA_VALIDATION_IGNORED = 275245642
        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617
        UNDECLARED_PROPERTIES = 390513439
        UNREACHABLE = 13328052

    code: str = proto.Field(
        proto.STRING,
        number=3059181,
        optional=True,
    )
    data: MutableSequence["Data"] = proto.RepeatedField(
        proto.MESSAGE,
        number=3076010,
        message="Data",
    )
    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )


class Warnings(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        code (str):
            [Output Only] A warning code, if applicable. For example,
            Compute Engine returns NO_RESULTS_ON_PAGE if there are no
            results in the response. Check the Code enum for the list of
            possible values.

            This field is a member of `oneof`_ ``_code``.
        data (MutableSequence[google.cloud.compute_v1beta.types.Data]):
            [Output Only] Metadata about this warning in key: value
            format. For example: "data": [ { "key": "scope", "value":
            "zones/us-east1-d" }
        message (str):
            [Output Only] A human-readable description of the warning
            code.

            This field is a member of `oneof`_ ``_message``.
    """

    class Code(proto.Enum):
        r"""[Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.

        Values:
            UNDEFINED_CODE (0):
                A value indicating that the enum field is not
                set.
            CLEANUP_FAILED (150308440):
                Warning about failed cleanup of transient
                changes made by a failed operation.
            DEPRECATED_RESOURCE_USED (391835586):
                A link to a deprecated resource was created.
            DEPRECATED_TYPE_USED (346526230):
                When deploying and at least one of the
                resources has a type marked as deprecated
            DISK_SIZE_LARGER_THAN_IMAGE_SIZE (369442967):
                The user created a boot disk that is larger
                than image size.
            EXPERIMENTAL_TYPE_USED (451954443):
                When deploying and at least one of the
                resources has a type marked as experimental
            EXTERNAL_API_WARNING (175546307):
                Warning that is present in an external api
                call
            FIELD_VALUE_OVERRIDEN (329669423):
                Warning that value of a field has been
                overridden. Deprecated unused field.
            INJECTED_KERNELS_DEPRECATED (417377419):
                The operation involved use of an injected
                kernel, which is deprecated.
            INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB (401542606):
                A WEIGHTED_MAGLEV backend service is associated with a
                health check that is not of type HTTP/HTTPS/HTTP2.
            LARGE_DEPLOYMENT_WARNING (481440678):
                When deploying a deployment with a
                exceedingly large number of resources
            LIST_OVERHEAD_QUOTA_EXCEED (47618117):
                Resource can't be retrieved due to list
                overhead quota exceed which captures the amount
                of resources filtered out by user-defined list
                filter.
            MISSING_TYPE_DEPENDENCY (344505463):
                A resource depends on a missing type
            NEXT_HOP_ADDRESS_NOT_ASSIGNED (324964999):
                The route's nextHopIp address is not assigned
                to an instance on the network.
            NEXT_HOP_CANNOT_IP_FORWARD (383382887):
                The route's next hop instance cannot ip
                forward.
            NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE (146748434):
                The route's nextHopInstance URL refers to an
                instance that does not have an ipv6 interface on
                the same network as the route.
            NEXT_HOP_INSTANCE_NOT_FOUND (464250446):
                The route's nextHopInstance URL refers to an
                instance that does not exist.
            NEXT_HOP_INSTANCE_NOT_ON_NETWORK (243758146):
                The route's nextHopInstance URL refers to an
                instance that is not on the same network as the
                route.
            NEXT_HOP_NOT_RUNNING (417081265):
                The route's next hop instance does not have a
                status of RUNNING.
            NOT_CRITICAL_ERROR (105763924):
                Error which is not critical. We decided to
                continue the process despite the mentioned
                error.
            NO_RESULTS_ON_PAGE (30036744):
                No results are present on a particular list
                page.
            PARTIAL_SUCCESS (39966469):
                Success is reported, but some results may be
                missing due to errors
            QUOTA_INFO_UNAVAILABLE (304294182):
                Quota information is not available to client
                requests (e.g: regions.list).
            REQUIRED_TOS_AGREEMENT (3745539):
                The user attempted to use a resource that
                requires a TOS they have not accepted.
            RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING (496728641):
                Warning that a resource is in use.
            RESOURCE_NOT_DELETED (168598460):
                One or more of the resources set to
                auto-delete could not be deleted because they
                were in use.
            SCHEMA_VALIDATION_IGNORED (275245642):
                When a resource schema validation is ignored.
            SINGLE_INSTANCE_PROPERTY_TEMPLATE (268305617):
                Instance template used in instance group
                manager is valid as such, but its application
                does not make a lot of sense, because it allows
                only single instance in instance group.
            UNDECLARED_PROPERTIES (390513439):
                When undeclared properties in the schema are
                present
            UNREACHABLE (13328052):
                A given scope cannot be reached.
        """
        UNDEFINED_CODE = 0
        CLEANUP_FAILED = 150308440
        DEPRECATED_RESOURCE_USED = 391835586
        DEPRECATED_TYPE_USED = 346526230
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 369442967
        EXPERIMENTAL_TYPE_USED = 451954443
        EXTERNAL_API_WARNING = 175546307
        FIELD_VALUE_OVERRIDEN = 329669423
        INJECTED_KERNELS_DEPRECATED = 417377419
        INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB = 401542606
        LARGE_DEPLOYMENT_WARNING = 481440678
        LIST_OVERHEAD_QUOTA_EXCEED = 47618117
        MISSING_TYPE_DEPENDENCY = 344505463
        NEXT_HOP_ADDRESS_NOT_ASSIGNED = 324964999
        NEXT_HOP_CANNOT_IP_FORWARD = 383382887
        NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE = 146748434
        NEXT_HOP_INSTANCE_NOT_FOUND = 464250446
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 243758146
        NEXT_HOP_NOT_RUNNING = 417081265
        NOT_CRITICAL_ERROR = 105763924
        NO_RESULTS_ON_PAGE = 30036744
        PARTIAL_SUCCESS = 39966469
        QUOTA_INFO_UNAVAILABLE = 304294182
        REQUIRED_TOS_AGREEMENT = 3745539
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 496728641
        RESOURCE_NOT_DELETED = 168598460
        SCHEMA_VALIDATION_IGNORED = 275245642
        SINGLE_INSTANCE_PROPERTY_TEMPLATE = 268305617
        UNDECLARED_PROPERTIES = 390513439
        UNREACHABLE = 13328052

    code: str = proto.Field(
        proto.STRING,
        number=3059181,
        optional=True,
    )
    data: MutableSequence["Data"] = proto.RepeatedField(
        proto.MESSAGE,
        number=3076010,
        message="Data",
    )
    message: str = proto.Field(
        proto.STRING,
        number=418054151,
        optional=True,
    )


class WeightedBackendService(proto.Message):
    r"""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


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        backend_service (str):
            The full or partial URL to the default
            BackendService resource. Before forwarding the
            request to backendService, the load balancer
            applies any relevant headerActions specified as
            part of this backendServiceWeight.

            This field is a member of `oneof`_ ``_backend_service``.
        header_action (google.cloud.compute_v1beta.types.HttpHeaderAction):
            Specifies changes to request and response
            headers that need to take effect for the
            selected backendService. headerAction specified
            here take effect before headerAction in the
            enclosing HttpRouteRule, PathMatcher and UrlMap.
            headerAction is not supported for load balancers
            that have their loadBalancingScheme set to
            EXTERNAL. Not supported when the URL map is
            bound to a target gRPC proxy that has
            validateForProxyless field set to true.

            This field is a member of `oneof`_ ``_header_action``.
        weight (int):
            Specifies the fraction of traffic sent to a
            backend service, computed as weight / (sum of
            all weightedBackendService weights in
            routeAction) . The selection of a backend
            service is determined only for new traffic. Once
            a user's request has been directed to a backend
            service, subsequent requests are sent to the
            same backend service as determined by the
            backend service's session affinity policy. Don't
            configure session affinity if you're using
            weighted traffic splitting. If you do, the
            weighted traffic splitting configuration takes
            precedence. The value must be from 0 to 1000.

            This field is a member of `oneof`_ ``_weight``.
    """

    backend_service: str = proto.Field(
        proto.STRING,
        number=306946058,
        optional=True,
    )
    header_action: "HttpHeaderAction" = proto.Field(
        proto.MESSAGE,
        number=328077352,
        optional=True,
        message="HttpHeaderAction",
    )
    weight: int = proto.Field(
        proto.UINT32,
        number=282149496,
        optional=True,
    )


class Wire(proto.Message):
    r"""A pseudowire that connects two Interconnect connections.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        admin_enabled (bool):
            [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.

            This field is a member of `oneof`_ ``_admin_enabled``.
        endpoints (MutableSequence[google.cloud.compute_v1beta.types.WireEndpoint]):
            Wire endpoints are specific Interconnect
            connections.
        label (str):
            [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.

            This field is a member of `oneof`_ ``_label``.
        wire_properties (google.cloud.compute_v1beta.types.WireProperties):
            [Output Only] Properties of the wire.

            This field is a member of `oneof`_ ``_wire_properties``.
    """

    admin_enabled: bool = proto.Field(
        proto.BOOL,
        number=445675089,
        optional=True,
    )
    endpoints: MutableSequence["WireEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=287085950,
        message="WireEndpoint",
    )
    label: str = proto.Field(
        proto.STRING,
        number=102727412,
        optional=True,
    )
    wire_properties: "WireProperties" = proto.Field(
        proto.MESSAGE,
        number=303111469,
        optional=True,
        message="WireProperties",
    )


class WireEndpoint(proto.Message):
    r"""Wire endpoints are specific Interconnect connections.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect (str):

            This field is a member of `oneof`_ ``_interconnect``.
        vlan_tag (int):

            This field is a member of `oneof`_ ``_vlan_tag``.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
        optional=True,
    )
    vlan_tag: int = proto.Field(
        proto.INT32,
        number=514640574,
        optional=True,
    )


class WireGroup(proto.Message):
    r"""A resource that represents a group of redundant wires.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        admin_enabled (bool):
            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.

            This field is a member of `oneof`_ ``_admin_enabled``.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        description (str):
            An optional description of the wire group.

            This field is a member of `oneof`_ ``_description``.
        endpoints (MutableMapping[str, google.cloud.compute_v1beta.types.WireGroupEndpoint]):
            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.
        id (int):
            [Output Only] The unique identifier for the resource type.
            The server generates this identifier.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#wireGroups for wire groups.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            Name of the resource. Provided by the client when the
            resource is created. The name must be 1-63 characters long,
            and comply with RFC1035. Specifically, the name must be 1-63
            characters long and match the regular expression
            ``[a-z]([-a-z0-9]*[a-z0-9])?`` which means the first
            character must be a lowercase letter, and all following
            characters must be a dash, lowercase letter, or digit,
            except the last character, which cannot be a dash.

            This field is a member of `oneof`_ ``_name``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        topology (google.cloud.compute_v1beta.types.WireGroupTopology):
            Topology details for the wire group
            configuration.

            This field is a member of `oneof`_ ``_topology``.
        wire_group_properties (google.cloud.compute_v1beta.types.WireGroupProperties):
            Properties of the wire group.

            This field is a member of `oneof`_ ``_wire_group_properties``.
        wire_properties (google.cloud.compute_v1beta.types.WireProperties):
            Properties for all wires in the wire group.

            This field is a member of `oneof`_ ``_wire_properties``.
        wires (MutableSequence[google.cloud.compute_v1beta.types.Wire]):
            The single/redundant wire(s) managed by the
            wire group.
    """

    admin_enabled: bool = proto.Field(
        proto.BOOL,
        number=445675089,
        optional=True,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    endpoints: MutableMapping[str, "WireGroupEndpoint"] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=287085950,
        message="WireGroupEndpoint",
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    topology: "WireGroupTopology" = proto.Field(
        proto.MESSAGE,
        number=122274415,
        optional=True,
        message="WireGroupTopology",
    )
    wire_group_properties: "WireGroupProperties" = proto.Field(
        proto.MESSAGE,
        number=214459245,
        optional=True,
        message="WireGroupProperties",
    )
    wire_properties: "WireProperties" = proto.Field(
        proto.MESSAGE,
        number=303111469,
        optional=True,
        message="WireProperties",
    )
    wires: MutableSequence["Wire"] = proto.RepeatedField(
        proto.MESSAGE,
        number=113139854,
        message="Wire",
    )


class WireGroupEndpoint(proto.Message):
    r"""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.

    Attributes:
        interconnects (MutableMapping[str, google.cloud.compute_v1beta.types.WireGroupEndpointInterconnect]):
            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: MutableMapping[
        str, "WireGroupEndpointInterconnect"
    ] = proto.MapField(
        proto.STRING,
        proto.MESSAGE,
        number=520187301,
        message="WireGroupEndpointInterconnect",
    )


class WireGroupEndpointInterconnect(proto.Message):
    r"""The redundant Interconnect connections for this endpoint.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        interconnect (str):
            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

            This field is a member of `oneof`_ ``_interconnect``.
        vlan_tags (MutableSequence[int]):
            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.
    """

    interconnect: str = proto.Field(
        proto.STRING,
        number=224601230,
        optional=True,
    )
    vlan_tags: MutableSequence[int] = proto.RepeatedField(
        proto.INT32,
        number=384601461,
    )


class WireGroupList(proto.Message):
    r"""Response for the list request.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        etag (str):

            This field is a member of `oneof`_ ``_etag``.
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.WireGroup]):
            A list of wire group resources.
        kind (str):
            [Output Only] Type of the resource. Always
            compute#wireGroups for wire groups.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        unreachables (MutableSequence[str]):
            [Output Only] Unreachable resources. end_interface:
            MixerListResponseWithEtagBuilder
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["WireGroup"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="WireGroup",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    unreachables: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=243372063,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class WireGroupProperties(proto.Message):
    r"""The properties of a wire group. These properties determine
    how a group of redundant wires are created and managed.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        type_ (str):
            The type of the wire group, one of the following: - WIRE: a
            single pseudowire over two Interconnect connections with no
            redundancy. - REDUNDANT: two pseudowires over four
            Interconnect connections, with two connections in one metro
            and two connections in another metro. Each redundant pair of
            Interconnect connections spans both edge availability
            domains of the metro. Each pseudowire connects Interconnect
            connections in matching edge availability domains of the two
            metros. - BOX_AND_CROSS: four pseudowires over four
            Interconnect connections, with two connections in one metro
            and two connections in another metro. Each redundant pair of
            Interconnect connections spans both edge availability
            domains of the metro. Two pseudowires connect Interconnect
            connections in matching edge availability domains of the two
            metros. Two additional pseudowires connect the non-matching
            edge availability domains of the two metros. Check the Type
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""The type of the wire group, one of the following: - WIRE: a single
        pseudowire over two Interconnect connections with no redundancy. -
        REDUNDANT: two pseudowires over four Interconnect connections, with
        two connections in one metro and two connections in another metro.
        Each redundant pair of Interconnect connections spans both edge
        availability domains of the metro. Each pseudowire connects
        Interconnect connections in matching edge availability domains of
        the two metros. - BOX_AND_CROSS: four pseudowires over four
        Interconnect connections, with two connections in one metro and two
        connections in another metro. Each redundant pair of Interconnect
        connections spans both edge availability domains of the metro. Two
        pseudowires connect Interconnect connections in matching edge
        availability domains of the two metros. Two additional pseudowires
        connect the non-matching edge availability domains of the two
        metros.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            BOX_AND_CROSS (311344644):
                Four pseudowires over four Interconnect
                connections, with two connections in one metro
                and two connections in another metro. Each
                redundant pair of Interconnect connections spans
                both edge availability domains of the metro. Two
                pseudowires connect Interconnect connections in
                matching edge availability domains of the two
                metros. Two additional pseudowires connect the
                non-matching edge availability domains of the
                two metros.
            REDUNDANT (3891405):
                Two pseudowires over four Interconnect
                connections, with two connections in one metro
                and two connections in another metro. Each
                redundant pair of Interconnect connections spans
                both edge availability domains of the metro.
                Each pseudowire connects Interconnect
                connections in matching edge availability
                domains of the two metros.
            WIRE (2664581):
                A single pseudowire over two Interconnect
                connections with no redundancy.
        """
        UNDEFINED_TYPE = 0
        BOX_AND_CROSS = 311344644
        REDUNDANT = 3891405
        WIRE = 2664581

    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class WireGroupTopology(proto.Message):
    r"""Topology details for the wire group.

    Attributes:
        endpoints (MutableSequence[google.cloud.compute_v1beta.types.WireGroupTopologyEndpoint]):
            Topology details for all endpoints in the
            wire group.
    """

    endpoints: MutableSequence["WireGroupTopologyEndpoint"] = proto.RepeatedField(
        proto.MESSAGE,
        number=287085950,
        message="WireGroupTopologyEndpoint",
    )


class WireGroupTopologyEndpoint(proto.Message):
    r"""Topology details for a single wire group endpoint.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        city (str):
            The InterconnectLocation.city (metropolitan
            area designator) that all interconnects are
            located in.

            This field is a member of `oneof`_ ``_city``.
        label (str):
            Endpoint label from the wire group.

            This field is a member of `oneof`_ ``_label``.
    """

    city: str = proto.Field(
        proto.STRING,
        number=3053931,
        optional=True,
    )
    label: str = proto.Field(
        proto.STRING,
        number=102727412,
        optional=True,
    )


class WireProperties(proto.Message):
    r"""The properties of a wire.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bandwidth_unmetered (int):
            The unmetered bandwidth in Gigabits per second, using
            decimal units. ``10`` is 10 Gbps, ``100`` is 100 Gbps.

            This field is a member of `oneof`_ ``_bandwidth_unmetered``.
        fault_response (str):
            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. Check the FaultResponse
            enum for the list of possible values.

            This field is a member of `oneof`_ ``_fault_response``.
    """

    class FaultResponse(proto.Enum):
        r"""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.

        Values:
            UNDEFINED_FAULT_RESPONSE (0):
                A value indicating that the enum field is not
                set.
            DISABLE_PORT (287086488):
                Set the port line protocol down when inline
                probes detect a fault. This setting is only
                permitted on port mode pseudowires.
            NONE (2402104):
                Default.
        """
        UNDEFINED_FAULT_RESPONSE = 0
        DISABLE_PORT = 287086488
        NONE = 2402104

    bandwidth_unmetered: int = proto.Field(
        proto.INT64,
        number=272650017,
        optional=True,
    )
    fault_response: str = proto.Field(
        proto.STRING,
        number=353587646,
        optional=True,
    )


class WithdrawPublicAdvertisedPrefixeRequest(proto.Message):
    r"""A request message for PublicAdvertisedPrefixes.Withdraw. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_advertised_prefix (str):
            The name of the public advertised prefix. It
            should comply with RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_advertised_prefix: str = proto.Field(
        proto.STRING,
        number=101874590,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class WithdrawPublicDelegatedPrefixeRequest(proto.Message):
    r"""A request message for PublicDelegatedPrefixes.Withdraw. See
    the method description for details.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        project (str):
            Project ID for this request.
        public_delegated_prefix (str):
            The name of the public delegated prefix. It
            should comply with RFC1035.
        region (str):
            The name of the region where the public
            delegated prefix is located. It should comply
            with RFC1035.
        request_id (str):
            An optional request ID to identify requests.
            Specify a unique request ID so that if you must
            retry your request, the server will know to
            ignore the request if it has already been
            completed. For example, consider a situation
            where you make an initial request and the
            request times out. If you make the request again
            with the same request ID, the server can check
            if original operation with the same request ID
            was received, and if so, will ignore the second
            request. This prevents clients from accidentally
            creating duplicate commitments. The request ID
            must be a valid UUID with the exception that
            zero UUID is not supported (
            00000000-0000-0000-0000-000000000000).

            This field is a member of `oneof`_ ``_request_id``.
    """

    project: str = proto.Field(
        proto.STRING,
        number=227560217,
    )
    public_delegated_prefix: str = proto.Field(
        proto.STRING,
        number=204238440,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
    )
    request_id: str = proto.Field(
        proto.STRING,
        number=37109963,
        optional=True,
    )


class XpnHostList(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Project]):
            [Output Only] A list of shared VPC host project URLs.
        kind (str):
            [Output Only] Type of resource. Always compute#xpnHostList
            for lists of shared VPC hosts.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Project"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Project",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class XpnResourceId(proto.Message):
    r"""Service resource (a.k.a service project) ID.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            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).

            This field is a member of `oneof`_ ``_id``.
        type_ (str):
            The type of the service resource.
            Check the Type enum for the list of possible
            values.

            This field is a member of `oneof`_ ``_type``.
    """

    class Type(proto.Enum):
        r"""The type of the service resource.

        Values:
            UNDEFINED_TYPE (0):
                A value indicating that the enum field is not
                set.
            PROJECT (408671993):
                No description available.
            XPN_RESOURCE_TYPE_UNSPECIFIED (151607034):
                No description available.
        """
        UNDEFINED_TYPE = 0
        PROJECT = 408671993
        XPN_RESOURCE_TYPE_UNSPECIFIED = 151607034

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    type_: str = proto.Field(
        proto.STRING,
        number=3575610,
        optional=True,
    )


class Zone(proto.Message):
    r"""Represents a Zone resource. A zone is a deployment area.
    These deployment areas are subsets of a region. For example the
    zone us-east1-b is located in the us-east1 region. For more
    information, read Regions and Zones.


    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        available_cpu_platforms (MutableSequence[str]):
            [Output Only] Available cpu/platform selections for the
            zone.
        creation_timestamp (str):
            [Output Only] Creation timestamp in RFC3339 text format.

            This field is a member of `oneof`_ ``_creation_timestamp``.
        deprecated (google.cloud.compute_v1beta.types.DeprecationStatus):
            [Output Only] The deprecation status associated with this
            zone.

            This field is a member of `oneof`_ ``_deprecated``.
        description (str):
            [Output Only] Textual description of the resource.

            This field is a member of `oneof`_ ``_description``.
        id (int):
            [Output Only] The unique identifier for the resource. This
            identifier is defined by the server.

            This field is a member of `oneof`_ ``_id``.
        kind (str):
            [Output Only] Type of the resource. Always compute#zone for
            zones.

            This field is a member of `oneof`_ ``_kind``.
        name (str):
            [Output Only] Name of the resource.

            This field is a member of `oneof`_ ``_name``.
        region (str):
            [Output Only] Full URL reference to the region which hosts
            the zone.

            This field is a member of `oneof`_ ``_region``.
        self_link (str):
            [Output Only] Server-defined URL for the resource.

            This field is a member of `oneof`_ ``_self_link``.
        status (str):
            [Output Only] Status of the zone, either UP or DOWN. Check
            the Status enum for the list of possible values.

            This field is a member of `oneof`_ ``_status``.
        supports_pzs (bool):
            [Output Only] Reserved for future use.

            This field is a member of `oneof`_ ``_supports_pzs``.
    """

    class Status(proto.Enum):
        r"""[Output Only] Status of the zone, either UP or DOWN.

        Values:
            UNDEFINED_STATUS (0):
                A value indicating that the enum field is not
                set.
            DOWN (2104482):
                No description available.
            UP (2715):
                No description available.
        """
        UNDEFINED_STATUS = 0
        DOWN = 2104482
        UP = 2715

    available_cpu_platforms: MutableSequence[str] = proto.RepeatedField(
        proto.STRING,
        number=175536531,
    )
    creation_timestamp: str = proto.Field(
        proto.STRING,
        number=30525366,
        optional=True,
    )
    deprecated: "DeprecationStatus" = proto.Field(
        proto.MESSAGE,
        number=515138995,
        optional=True,
        message="DeprecationStatus",
    )
    description: str = proto.Field(
        proto.STRING,
        number=422937596,
        optional=True,
    )
    id: int = proto.Field(
        proto.UINT64,
        number=3355,
        optional=True,
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    name: str = proto.Field(
        proto.STRING,
        number=3373707,
        optional=True,
    )
    region: str = proto.Field(
        proto.STRING,
        number=138946292,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    status: str = proto.Field(
        proto.STRING,
        number=181260274,
        optional=True,
    )
    supports_pzs: bool = proto.Field(
        proto.BOOL,
        number=83983214,
        optional=True,
    )


class ZoneList(proto.Message):
    r"""Contains a list of zone resources.

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        id (str):
            [Output Only] Unique identifier for the resource; defined by
            the server.

            This field is a member of `oneof`_ ``_id``.
        items (MutableSequence[google.cloud.compute_v1beta.types.Zone]):
            A list of Zone resources.
        kind (str):
            Type of resource.

            This field is a member of `oneof`_ ``_kind``.
        next_page_token (str):
            [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.

            This field is a member of `oneof`_ ``_next_page_token``.
        self_link (str):
            [Output Only] Server-defined URL for this resource.

            This field is a member of `oneof`_ ``_self_link``.
        warning (google.cloud.compute_v1beta.types.Warning):
            [Output Only] Informational warning message.

            This field is a member of `oneof`_ ``_warning``.
    """

    @property
    def raw_page(self):
        return self

    id: str = proto.Field(
        proto.STRING,
        number=3355,
        optional=True,
    )
    items: MutableSequence["Zone"] = proto.RepeatedField(
        proto.MESSAGE,
        number=100526016,
        message="Zone",
    )
    kind: str = proto.Field(
        proto.STRING,
        number=3292052,
        optional=True,
    )
    next_page_token: str = proto.Field(
        proto.STRING,
        number=79797525,
        optional=True,
    )
    self_link: str = proto.Field(
        proto.STRING,
        number=456214797,
        optional=True,
    )
    warning: "Warning" = proto.Field(
        proto.MESSAGE,
        number=50704284,
        optional=True,
        message="Warning",
    )


class ZoneSetLabelsRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        label_fingerprint (str):
            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.

            This field is a member of `oneof`_ ``_label_fingerprint``.
        labels (MutableMapping[str, str]):
            The labels to set for this resource.
    """

    label_fingerprint: str = proto.Field(
        proto.STRING,
        number=178124825,
        optional=True,
    )
    labels: MutableMapping[str, str] = proto.MapField(
        proto.STRING,
        proto.STRING,
        number=500195327,
    )


class ZoneSetPolicyRequest(proto.Message):
    r"""

    .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

    Attributes:
        bindings (MutableSequence[google.cloud.compute_v1beta.types.Binding]):
            Flatten Policy to create a backwacd
            compatible wire-format. Deprecated. Use 'policy'
            to specify bindings.
        etag (str):
            Flatten Policy to create a backward
            compatible wire-format. Deprecated. Use 'policy'
            to specify the etag.

            This field is a member of `oneof`_ ``_etag``.
        policy (google.cloud.compute_v1beta.types.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.

            This field is a member of `oneof`_ ``_policy``.
    """

    bindings: MutableSequence["Binding"] = proto.RepeatedField(
        proto.MESSAGE,
        number=403251854,
        message="Binding",
    )
    etag: str = proto.Field(
        proto.STRING,
        number=3123477,
        optional=True,
    )
    policy: "Policy" = proto.Field(
        proto.MESSAGE,
        number=91071794,
        optional=True,
        message="Policy",
    )


__all__ = tuple(sorted(__protobuf__.manifest))
