/*
 * Copyright 2020 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
 *
 *     https://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.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/compute/v1/compute.proto

package com.google.cloud.compute.v1;

/**
 *
 *
 * <pre>
 * A quotas entry.
 * </pre>
 *
 * Protobuf type {@code google.cloud.compute.v1.Quota}
 */
public final class Quota extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.cloud.compute.v1.Quota)
    QuotaOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use Quota.newBuilder() to construct.
  private Quota(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private Quota() {
    metric_ = "";
    owner_ = "";
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
    return new Quota();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.cloud.compute.v1.Compute
        .internal_static_google_cloud_compute_v1_Quota_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.cloud.compute.v1.Compute
        .internal_static_google_cloud_compute_v1_Quota_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.cloud.compute.v1.Quota.class,
            com.google.cloud.compute.v1.Quota.Builder.class);
  }

  /**
   *
   *
   * <pre>
   * [Output Only] Name of the quota metric.
   * </pre>
   *
   * Protobuf enum {@code google.cloud.compute.v1.Quota.Metric}
   */
  public enum Metric implements com.google.protobuf.ProtocolMessageEnum {
    /**
     *
     *
     * <pre>
     * A value indicating that the enum field is not set.
     * </pre>
     *
     * <code>UNDEFINED_METRIC = 0;</code>
     */
    UNDEFINED_METRIC(0),
    /** <code>A2_CPUS = 153206585;</code> */
    A2_CPUS(153206585),
    /** <code>AFFINITY_GROUPS = 108303563;</code> */
    AFFINITY_GROUPS(108303563),
    /** <code>AUTOSCALERS = 471248988;</code> */
    AUTOSCALERS(471248988),
    /** <code>BACKEND_BUCKETS = 137626846;</code> */
    BACKEND_BUCKETS(137626846),
    /** <code>BACKEND_SERVICES = 269623753;</code> */
    BACKEND_SERVICES(269623753),
    /** <code>C2D_CPUS = 508182517;</code> */
    C2D_CPUS(508182517),
    /** <code>C2_CPUS = 317601211;</code> */
    C2_CPUS(317601211),
    /** <code>C3_CPUS = 346230362;</code> */
    C3_CPUS(346230362),
    /** <code>COMMITMENTS = 456141790;</code> */
    COMMITMENTS(456141790),
    /** <code>COMMITTED_A2_CPUS = 59330902;</code> */
    COMMITTED_A2_CPUS(59330902),
    /** <code>COMMITTED_C2D_CPUS = 282390904;</code> */
    COMMITTED_C2D_CPUS(282390904),
    /** <code>COMMITTED_C2_CPUS = 223725528;</code> */
    COMMITTED_C2_CPUS(223725528),
    /** <code>COMMITTED_C3_CPUS = 252354679;</code> */
    COMMITTED_C3_CPUS(252354679),
    /** <code>COMMITTED_CPUS = 292394702;</code> */
    COMMITTED_CPUS(292394702),
    /** <code>COMMITTED_E2_CPUS = 388120154;</code> */
    COMMITTED_E2_CPUS(388120154),
    /** <code>COMMITTED_LICENSES = 357606869;</code> */
    COMMITTED_LICENSES(357606869),
    /** <code>COMMITTED_LOCAL_SSD_TOTAL_GB = 308393480;</code> */
    COMMITTED_LOCAL_SSD_TOTAL_GB(308393480),
    /** <code>COMMITTED_M3_CPUS = 585985;</code> */
    COMMITTED_M3_CPUS(585985),
    /** <code>COMMITTED_MEMORY_OPTIMIZED_CPUS = 489057886;</code> */
    COMMITTED_MEMORY_OPTIMIZED_CPUS(489057886),
    /** <code>COMMITTED_N2A_CPUS = 40064304;</code> */
    COMMITTED_N2A_CPUS(40064304),
    /** <code>COMMITTED_N2D_CPUS = 125951757;</code> */
    COMMITTED_N2D_CPUS(125951757),
    /** <code>COMMITTED_N2_CPUS = 322589603;</code> */
    COMMITTED_N2_CPUS(322589603),
    /** <code>COMMITTED_NVIDIA_A100_80GB_GPUS = 464326565;</code> */
    COMMITTED_NVIDIA_A100_80GB_GPUS(464326565),
    /** <code>COMMITTED_NVIDIA_A100_GPUS = 375799445;</code> */
    COMMITTED_NVIDIA_A100_GPUS(375799445),
    /** <code>COMMITTED_NVIDIA_K80_GPUS = 3857188;</code> */
    COMMITTED_NVIDIA_K80_GPUS(3857188),
    /** <code>COMMITTED_NVIDIA_P100_GPUS = 107528100;</code> */
    COMMITTED_NVIDIA_P100_GPUS(107528100),
    /** <code>COMMITTED_NVIDIA_P4_GPUS = 347952897;</code> */
    COMMITTED_NVIDIA_P4_GPUS(347952897),
    /** <code>COMMITTED_NVIDIA_T4_GPUS = 139871237;</code> */
    COMMITTED_NVIDIA_T4_GPUS(139871237),
    /** <code>COMMITTED_NVIDIA_V100_GPUS = 219562;</code> */
    COMMITTED_NVIDIA_V100_GPUS(219562),
    /** <code>COMMITTED_T2A_CPUS = 296378986;</code> */
    COMMITTED_T2A_CPUS(296378986),
    /** <code>COMMITTED_T2D_CPUS = 382266439;</code> */
    COMMITTED_T2D_CPUS(382266439),
    /**
     *
     *
     * <pre>
     * Guest CPUs
     * </pre>
     *
     * <code>CPUS = 2075595;</code>
     */
    CPUS(2075595),
    /** <code>CPUS_ALL_REGIONS = 470911149;</code> */
    CPUS_ALL_REGIONS(470911149),
    /** <code>DISKS_TOTAL_GB = 353520543;</code> */
    DISKS_TOTAL_GB(353520543),
    /** <code>E2_CPUS = 481995837;</code> */
    E2_CPUS(481995837),
    /** <code>EXTERNAL_MANAGED_FORWARDING_RULES = 150790089;</code> */
    EXTERNAL_MANAGED_FORWARDING_RULES(150790089),
    /** <code>EXTERNAL_NETWORK_LB_FORWARDING_RULES = 374298265;</code> */
    EXTERNAL_NETWORK_LB_FORWARDING_RULES(374298265),
    /** <code>EXTERNAL_PROTOCOL_FORWARDING_RULES = 63478888;</code> */
    EXTERNAL_PROTOCOL_FORWARDING_RULES(63478888),
    /** <code>EXTERNAL_VPN_GATEWAYS = 272457134;</code> */
    EXTERNAL_VPN_GATEWAYS(272457134),
    /** <code>FIREWALLS = 374485843;</code> */
    FIREWALLS(374485843),
    /** <code>FORWARDING_RULES = 432668949;</code> */
    FORWARDING_RULES(432668949),
    /** <code>GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 164566753;</code> */
    GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES(164566753),
    /** <code>GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES = 327611949;</code> */
    GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES(327611949),
    /** <code>GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES = 400256169;</code> */
    GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES(400256169),
    /** <code>GLOBAL_INTERNAL_ADDRESSES = 42738332;</code> */
    GLOBAL_INTERNAL_ADDRESSES(42738332),
    /** <code>GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES = 256608303;</code> */
    GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES(256608303),
    /** <code>GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 323514196;</code> */
    GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES(323514196),
    /** <code>GPUS_ALL_REGIONS = 39387177;</code> */
    GPUS_ALL_REGIONS(39387177),
    /** <code>HEALTH_CHECKS = 289347502;</code> */
    HEALTH_CHECKS(289347502),
    /** <code>IMAGES = 15562360;</code> */
    IMAGES(15562360),
    /** <code>INSTANCES = 131337822;</code> */
    INSTANCES(131337822),
    /** <code>INSTANCE_GROUPS = 355919038;</code> */
    INSTANCE_GROUPS(355919038),
    /** <code>INSTANCE_GROUP_MANAGERS = 101798192;</code> */
    INSTANCE_GROUP_MANAGERS(101798192),
    /** <code>INSTANCE_TEMPLATES = 226188271;</code> */
    INSTANCE_TEMPLATES(226188271),
    /** <code>INTERCONNECTS = 415204741;</code> */
    INTERCONNECTS(415204741),
    /** <code>INTERCONNECT_ATTACHMENTS_PER_REGION = 159968086;</code> */
    INTERCONNECT_ATTACHMENTS_PER_REGION(159968086),
    /** <code>INTERCONNECT_ATTACHMENTS_TOTAL_MBPS = 425090419;</code> */
    INTERCONNECT_ATTACHMENTS_TOTAL_MBPS(425090419),
    /** <code>INTERCONNECT_TOTAL_GBPS = 285341866;</code> */
    INTERCONNECT_TOTAL_GBPS(285341866),
    /** <code>INTERNAL_ADDRESSES = 197899392;</code> */
    INTERNAL_ADDRESSES(197899392),
    /** <code>INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES = 266433668;</code> */
    INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES(266433668),
    /** <code>IN_PLACE_SNAPSHOTS = 151359133;</code> */
    IN_PLACE_SNAPSHOTS(151359133),
    /** <code>IN_USE_ADDRESSES = 402125072;</code> */
    IN_USE_ADDRESSES(402125072),
    /** <code>IN_USE_BACKUP_SCHEDULES = 32786705;</code> */
    IN_USE_BACKUP_SCHEDULES(32786705),
    /** <code>IN_USE_SNAPSHOT_SCHEDULES = 462104083;</code> */
    IN_USE_SNAPSHOT_SCHEDULES(462104083),
    /** <code>LOCAL_SSD_TOTAL_GB = 330878021;</code> */
    LOCAL_SSD_TOTAL_GB(330878021),
    /** <code>M1_CPUS = 37203366;</code> */
    M1_CPUS(37203366),
    /** <code>M2_CPUS = 65832517;</code> */
    M2_CPUS(65832517),
    /** <code>M3_CPUS = 94461668;</code> */
    M3_CPUS(94461668),
    /** <code>MACHINE_IMAGES = 446986640;</code> */
    MACHINE_IMAGES(446986640),
    /** <code>N2A_CPUS = 265855917;</code> */
    N2A_CPUS(265855917),
    /** <code>N2D_CPUS = 351743370;</code> */
    N2D_CPUS(351743370),
    /** <code>N2_CPUS = 416465286;</code> */
    N2_CPUS(416465286),
    /** <code>NETWORKS = 485481477;</code> */
    NETWORKS(485481477),
    /** <code>NETWORK_ATTACHMENTS = 149028575;</code> */
    NETWORK_ATTACHMENTS(149028575),
    /** <code>NETWORK_ENDPOINT_GROUPS = 102144909;</code> */
    NETWORK_ENDPOINT_GROUPS(102144909),
    /** <code>NETWORK_FIREWALL_POLICIES = 101117374;</code> */
    NETWORK_FIREWALL_POLICIES(101117374),
    /** <code>NODE_GROUPS = 24624817;</code> */
    NODE_GROUPS(24624817),
    /** <code>NODE_TEMPLATES = 474896668;</code> */
    NODE_TEMPLATES(474896668),
    /** <code>NVIDIA_A100_80GB_GPUS = 286389320;</code> */
    NVIDIA_A100_80GB_GPUS(286389320),
    /** <code>NVIDIA_A100_GPUS = 504872978;</code> */
    NVIDIA_A100_GPUS(504872978),
    /** <code>NVIDIA_K80_GPUS = 163886599;</code> */
    NVIDIA_K80_GPUS(163886599),
    /** <code>NVIDIA_P100_GPUS = 236601633;</code> */
    NVIDIA_P100_GPUS(236601633),
    /** <code>NVIDIA_P100_VWS_GPUS = 213970574;</code> */
    NVIDIA_P100_VWS_GPUS(213970574),
    /** <code>NVIDIA_P4_GPUS = 283841470;</code> */
    NVIDIA_P4_GPUS(283841470),
    /** <code>NVIDIA_P4_VWS_GPUS = 528296619;</code> */
    NVIDIA_P4_VWS_GPUS(528296619),
    /** <code>NVIDIA_T4_GPUS = 75759810;</code> */
    NVIDIA_T4_GPUS(75759810),
    /** <code>NVIDIA_T4_VWS_GPUS = 319813039;</code> */
    NVIDIA_T4_VWS_GPUS(319813039),
    /** <code>NVIDIA_V100_GPUS = 129293095;</code> */
    NVIDIA_V100_GPUS(129293095),
    /** <code>PACKET_MIRRORINGS = 15578407;</code> */
    PACKET_MIRRORINGS(15578407),
    /** <code>PD_EXTREME_TOTAL_PROVISIONED_IOPS = 69593965;</code> */
    PD_EXTREME_TOTAL_PROVISIONED_IOPS(69593965),
    /** <code>PREEMPTIBLE_CPUS = 251184841;</code> */
    PREEMPTIBLE_CPUS(251184841),
    /** <code>PREEMPTIBLE_LOCAL_SSD_GB = 260819336;</code> */
    PREEMPTIBLE_LOCAL_SSD_GB(260819336),
    /** <code>PREEMPTIBLE_NVIDIA_A100_80GB_GPUS = 151942410;</code> */
    PREEMPTIBLE_NVIDIA_A100_80GB_GPUS(151942410),
    /** <code>PREEMPTIBLE_NVIDIA_A100_GPUS = 68832784;</code> */
    PREEMPTIBLE_NVIDIA_A100_GPUS(68832784),
    /** <code>PREEMPTIBLE_NVIDIA_K80_GPUS = 374960201;</code> */
    PREEMPTIBLE_NVIDIA_K80_GPUS(374960201),
    /** <code>PREEMPTIBLE_NVIDIA_P100_GPUS = 337432351;</code> */
    PREEMPTIBLE_NVIDIA_P100_GPUS(337432351),
    /** <code>PREEMPTIBLE_NVIDIA_P100_VWS_GPUS = 313544076;</code> */
    PREEMPTIBLE_NVIDIA_P100_VWS_GPUS(313544076),
    /** <code>PREEMPTIBLE_NVIDIA_P4_GPUS = 429197628;</code> */
    PREEMPTIBLE_NVIDIA_P4_GPUS(429197628),
    /** <code>PREEMPTIBLE_NVIDIA_P4_VWS_GPUS = 252981545;</code> */
    PREEMPTIBLE_NVIDIA_P4_VWS_GPUS(252981545),
    /** <code>PREEMPTIBLE_NVIDIA_T4_GPUS = 221115968;</code> */
    PREEMPTIBLE_NVIDIA_T4_GPUS(221115968),
    /** <code>PREEMPTIBLE_NVIDIA_T4_VWS_GPUS = 44497965;</code> */
    PREEMPTIBLE_NVIDIA_T4_VWS_GPUS(44497965),
    /** <code>PREEMPTIBLE_NVIDIA_V100_GPUS = 230123813;</code> */
    PREEMPTIBLE_NVIDIA_V100_GPUS(230123813),
    /** <code>PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK = 231164291;</code> */
    PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK(231164291),
    /** <code>PSC_INTERNAL_LB_FORWARDING_RULES = 169005435;</code> */
    PSC_INTERNAL_LB_FORWARDING_RULES(169005435),
    /** <code>PUBLIC_ADVERTISED_PREFIXES = 471371980;</code> */
    PUBLIC_ADVERTISED_PREFIXES(471371980),
    /** <code>PUBLIC_DELEGATED_PREFIXES = 532465974;</code> */
    PUBLIC_DELEGATED_PREFIXES(532465974),
    /** <code>REGIONAL_AUTOSCALERS = 29363772;</code> */
    REGIONAL_AUTOSCALERS(29363772),
    /** <code>REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 4240989;</code> */
    REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES(4240989),
    /** <code>REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES = 409564525;</code> */
    REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES(409564525),
    /** <code>REGIONAL_INSTANCE_GROUP_MANAGERS = 37543696;</code> */
    REGIONAL_INSTANCE_GROUP_MANAGERS(37543696),
    /** <code>REGIONAL_INTERNAL_LB_BACKEND_SERVICES = 137983760;</code> */
    REGIONAL_INTERNAL_LB_BACKEND_SERVICES(137983760),
    /** <code>REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES = 96282539;</code> */
    REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES(96282539),
    /** <code>RESERVATIONS = 32644647;</code> */
    RESERVATIONS(32644647),
    /** <code>RESOURCE_POLICIES = 83955297;</code> */
    RESOURCE_POLICIES(83955297),
    /** <code>ROUTERS = 493018666;</code> */
    ROUTERS(493018666),
    /** <code>ROUTES = 275680074;</code> */
    ROUTES(275680074),
    /** <code>SECURITY_POLICIES = 189518703;</code> */
    SECURITY_POLICIES(189518703),
    /** <code>SECURITY_POLICIES_PER_REGION = 249041734;</code> */
    SECURITY_POLICIES_PER_REGION(249041734),
    /** <code>SECURITY_POLICY_CEVAL_RULES = 470815689;</code> */
    SECURITY_POLICY_CEVAL_RULES(470815689),
    /** <code>SECURITY_POLICY_RULES = 203549225;</code> */
    SECURITY_POLICY_RULES(203549225),
    /** <code>SECURITY_POLICY_RULES_PER_REGION = 126510156;</code> */
    SECURITY_POLICY_RULES_PER_REGION(126510156),
    /** <code>SERVICE_ATTACHMENTS = 471521510;</code> */
    SERVICE_ATTACHMENTS(471521510),
    /**
     *
     *
     * <pre>
     * The total number of snapshots allowed for a single project.
     * </pre>
     *
     * <code>SNAPSHOTS = 343405327;</code>
     */
    SNAPSHOTS(343405327),
    /** <code>SSD_TOTAL_GB = 161732561;</code> */
    SSD_TOTAL_GB(161732561),
    /** <code>SSL_CERTIFICATES = 378372399;</code> */
    SSL_CERTIFICATES(378372399),
    /** <code>STATIC_ADDRESSES = 93624049;</code> */
    STATIC_ADDRESSES(93624049),
    /** <code>STATIC_BYOIP_ADDRESSES = 275809649;</code> */
    STATIC_BYOIP_ADDRESSES(275809649),
    /** <code>STATIC_EXTERNAL_IPV6_ADDRESS_RANGES = 472346774;</code> */
    STATIC_EXTERNAL_IPV6_ADDRESS_RANGES(472346774),
    /** <code>SUBNETWORKS = 421330469;</code> */
    SUBNETWORKS(421330469),
    /** <code>T2A_CPUS = 522170599;</code> */
    T2A_CPUS(522170599),
    /** <code>T2D_CPUS = 71187140;</code> */
    T2D_CPUS(71187140),
    /** <code>TARGET_HTTPS_PROXIES = 219522506;</code> */
    TARGET_HTTPS_PROXIES(219522506),
    /** <code>TARGET_HTTP_PROXIES = 164117155;</code> */
    TARGET_HTTP_PROXIES(164117155),
    /** <code>TARGET_INSTANCES = 284519728;</code> */
    TARGET_INSTANCES(284519728),
    /** <code>TARGET_POOLS = 348261257;</code> */
    TARGET_POOLS(348261257),
    /** <code>TARGET_SSL_PROXIES = 159216235;</code> */
    TARGET_SSL_PROXIES(159216235),
    /** <code>TARGET_TCP_PROXIES = 182243136;</code> */
    TARGET_TCP_PROXIES(182243136),
    /** <code>TARGET_VPN_GATEWAYS = 75029928;</code> */
    TARGET_VPN_GATEWAYS(75029928),
    /** <code>URL_MAPS = 378660743;</code> */
    URL_MAPS(378660743),
    /** <code>VPN_GATEWAYS = 35620282;</code> */
    VPN_GATEWAYS(35620282),
    /** <code>VPN_TUNNELS = 104327296;</code> */
    VPN_TUNNELS(104327296),
    /** <code>XPN_SERVICE_PROJECTS = 95191981;</code> */
    XPN_SERVICE_PROJECTS(95191981),
    UNRECOGNIZED(-1),
    ;

    /**
     *
     *
     * <pre>
     * A value indicating that the enum field is not set.
     * </pre>
     *
     * <code>UNDEFINED_METRIC = 0;</code>
     */
    public static final int UNDEFINED_METRIC_VALUE = 0;
    /** <code>A2_CPUS = 153206585;</code> */
    public static final int A2_CPUS_VALUE = 153206585;
    /** <code>AFFINITY_GROUPS = 108303563;</code> */
    public static final int AFFINITY_GROUPS_VALUE = 108303563;
    /** <code>AUTOSCALERS = 471248988;</code> */
    public static final int AUTOSCALERS_VALUE = 471248988;
    /** <code>BACKEND_BUCKETS = 137626846;</code> */
    public static final int BACKEND_BUCKETS_VALUE = 137626846;
    /** <code>BACKEND_SERVICES = 269623753;</code> */
    public static final int BACKEND_SERVICES_VALUE = 269623753;
    /** <code>C2D_CPUS = 508182517;</code> */
    public static final int C2D_CPUS_VALUE = 508182517;
    /** <code>C2_CPUS = 317601211;</code> */
    public static final int C2_CPUS_VALUE = 317601211;
    /** <code>C3_CPUS = 346230362;</code> */
    public static final int C3_CPUS_VALUE = 346230362;
    /** <code>COMMITMENTS = 456141790;</code> */
    public static final int COMMITMENTS_VALUE = 456141790;
    /** <code>COMMITTED_A2_CPUS = 59330902;</code> */
    public static final int COMMITTED_A2_CPUS_VALUE = 59330902;
    /** <code>COMMITTED_C2D_CPUS = 282390904;</code> */
    public static final int COMMITTED_C2D_CPUS_VALUE = 282390904;
    /** <code>COMMITTED_C2_CPUS = 223725528;</code> */
    public static final int COMMITTED_C2_CPUS_VALUE = 223725528;
    /** <code>COMMITTED_C3_CPUS = 252354679;</code> */
    public static final int COMMITTED_C3_CPUS_VALUE = 252354679;
    /** <code>COMMITTED_CPUS = 292394702;</code> */
    public static final int COMMITTED_CPUS_VALUE = 292394702;
    /** <code>COMMITTED_E2_CPUS = 388120154;</code> */
    public static final int COMMITTED_E2_CPUS_VALUE = 388120154;
    /** <code>COMMITTED_LICENSES = 357606869;</code> */
    public static final int COMMITTED_LICENSES_VALUE = 357606869;
    /** <code>COMMITTED_LOCAL_SSD_TOTAL_GB = 308393480;</code> */
    public static final int COMMITTED_LOCAL_SSD_TOTAL_GB_VALUE = 308393480;
    /** <code>COMMITTED_M3_CPUS = 585985;</code> */
    public static final int COMMITTED_M3_CPUS_VALUE = 585985;
    /** <code>COMMITTED_MEMORY_OPTIMIZED_CPUS = 489057886;</code> */
    public static final int COMMITTED_MEMORY_OPTIMIZED_CPUS_VALUE = 489057886;
    /** <code>COMMITTED_N2A_CPUS = 40064304;</code> */
    public static final int COMMITTED_N2A_CPUS_VALUE = 40064304;
    /** <code>COMMITTED_N2D_CPUS = 125951757;</code> */
    public static final int COMMITTED_N2D_CPUS_VALUE = 125951757;
    /** <code>COMMITTED_N2_CPUS = 322589603;</code> */
    public static final int COMMITTED_N2_CPUS_VALUE = 322589603;
    /** <code>COMMITTED_NVIDIA_A100_80GB_GPUS = 464326565;</code> */
    public static final int COMMITTED_NVIDIA_A100_80GB_GPUS_VALUE = 464326565;
    /** <code>COMMITTED_NVIDIA_A100_GPUS = 375799445;</code> */
    public static final int COMMITTED_NVIDIA_A100_GPUS_VALUE = 375799445;
    /** <code>COMMITTED_NVIDIA_K80_GPUS = 3857188;</code> */
    public static final int COMMITTED_NVIDIA_K80_GPUS_VALUE = 3857188;
    /** <code>COMMITTED_NVIDIA_P100_GPUS = 107528100;</code> */
    public static final int COMMITTED_NVIDIA_P100_GPUS_VALUE = 107528100;
    /** <code>COMMITTED_NVIDIA_P4_GPUS = 347952897;</code> */
    public static final int COMMITTED_NVIDIA_P4_GPUS_VALUE = 347952897;
    /** <code>COMMITTED_NVIDIA_T4_GPUS = 139871237;</code> */
    public static final int COMMITTED_NVIDIA_T4_GPUS_VALUE = 139871237;
    /** <code>COMMITTED_NVIDIA_V100_GPUS = 219562;</code> */
    public static final int COMMITTED_NVIDIA_V100_GPUS_VALUE = 219562;
    /** <code>COMMITTED_T2A_CPUS = 296378986;</code> */
    public static final int COMMITTED_T2A_CPUS_VALUE = 296378986;
    /** <code>COMMITTED_T2D_CPUS = 382266439;</code> */
    public static final int COMMITTED_T2D_CPUS_VALUE = 382266439;
    /**
     *
     *
     * <pre>
     * Guest CPUs
     * </pre>
     *
     * <code>CPUS = 2075595;</code>
     */
    public static final int CPUS_VALUE = 2075595;
    /** <code>CPUS_ALL_REGIONS = 470911149;</code> */
    public static final int CPUS_ALL_REGIONS_VALUE = 470911149;
    /** <code>DISKS_TOTAL_GB = 353520543;</code> */
    public static final int DISKS_TOTAL_GB_VALUE = 353520543;
    /** <code>E2_CPUS = 481995837;</code> */
    public static final int E2_CPUS_VALUE = 481995837;
    /** <code>EXTERNAL_MANAGED_FORWARDING_RULES = 150790089;</code> */
    public static final int EXTERNAL_MANAGED_FORWARDING_RULES_VALUE = 150790089;
    /** <code>EXTERNAL_NETWORK_LB_FORWARDING_RULES = 374298265;</code> */
    public static final int EXTERNAL_NETWORK_LB_FORWARDING_RULES_VALUE = 374298265;
    /** <code>EXTERNAL_PROTOCOL_FORWARDING_RULES = 63478888;</code> */
    public static final int EXTERNAL_PROTOCOL_FORWARDING_RULES_VALUE = 63478888;
    /** <code>EXTERNAL_VPN_GATEWAYS = 272457134;</code> */
    public static final int EXTERNAL_VPN_GATEWAYS_VALUE = 272457134;
    /** <code>FIREWALLS = 374485843;</code> */
    public static final int FIREWALLS_VALUE = 374485843;
    /** <code>FORWARDING_RULES = 432668949;</code> */
    public static final int FORWARDING_RULES_VALUE = 432668949;
    /** <code>GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 164566753;</code> */
    public static final int GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES_VALUE = 164566753;
    /** <code>GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES = 327611949;</code> */
    public static final int GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES_VALUE = 327611949;
    /** <code>GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES = 400256169;</code> */
    public static final int GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES_VALUE = 400256169;
    /** <code>GLOBAL_INTERNAL_ADDRESSES = 42738332;</code> */
    public static final int GLOBAL_INTERNAL_ADDRESSES_VALUE = 42738332;
    /** <code>GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES = 256608303;</code> */
    public static final int GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES_VALUE = 256608303;
    /** <code>GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES = 323514196;</code> */
    public static final int GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES_VALUE = 323514196;
    /** <code>GPUS_ALL_REGIONS = 39387177;</code> */
    public static final int GPUS_ALL_REGIONS_VALUE = 39387177;
    /** <code>HEALTH_CHECKS = 289347502;</code> */
    public static final int HEALTH_CHECKS_VALUE = 289347502;
    /** <code>IMAGES = 15562360;</code> */
    public static final int IMAGES_VALUE = 15562360;
    /** <code>INSTANCES = 131337822;</code> */
    public static final int INSTANCES_VALUE = 131337822;
    /** <code>INSTANCE_GROUPS = 355919038;</code> */
    public static final int INSTANCE_GROUPS_VALUE = 355919038;
    /** <code>INSTANCE_GROUP_MANAGERS = 101798192;</code> */
    public static final int INSTANCE_GROUP_MANAGERS_VALUE = 101798192;
    /** <code>INSTANCE_TEMPLATES = 226188271;</code> */
    public static final int INSTANCE_TEMPLATES_VALUE = 226188271;
    /** <code>INTERCONNECTS = 415204741;</code> */
    public static final int INTERCONNECTS_VALUE = 415204741;
    /** <code>INTERCONNECT_ATTACHMENTS_PER_REGION = 159968086;</code> */
    public static final int INTERCONNECT_ATTACHMENTS_PER_REGION_VALUE = 159968086;
    /** <code>INTERCONNECT_ATTACHMENTS_TOTAL_MBPS = 425090419;</code> */
    public static final int INTERCONNECT_ATTACHMENTS_TOTAL_MBPS_VALUE = 425090419;
    /** <code>INTERCONNECT_TOTAL_GBPS = 285341866;</code> */
    public static final int INTERCONNECT_TOTAL_GBPS_VALUE = 285341866;
    /** <code>INTERNAL_ADDRESSES = 197899392;</code> */
    public static final int INTERNAL_ADDRESSES_VALUE = 197899392;
    /** <code>INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES = 266433668;</code> */
    public static final int INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES_VALUE = 266433668;
    /** <code>IN_PLACE_SNAPSHOTS = 151359133;</code> */
    public static final int IN_PLACE_SNAPSHOTS_VALUE = 151359133;
    /** <code>IN_USE_ADDRESSES = 402125072;</code> */
    public static final int IN_USE_ADDRESSES_VALUE = 402125072;
    /** <code>IN_USE_BACKUP_SCHEDULES = 32786705;</code> */
    public static final int IN_USE_BACKUP_SCHEDULES_VALUE = 32786705;
    /** <code>IN_USE_SNAPSHOT_SCHEDULES = 462104083;</code> */
    public static final int IN_USE_SNAPSHOT_SCHEDULES_VALUE = 462104083;
    /** <code>LOCAL_SSD_TOTAL_GB = 330878021;</code> */
    public static final int LOCAL_SSD_TOTAL_GB_VALUE = 330878021;
    /** <code>M1_CPUS = 37203366;</code> */
    public static final int M1_CPUS_VALUE = 37203366;
    /** <code>M2_CPUS = 65832517;</code> */
    public static final int M2_CPUS_VALUE = 65832517;
    /** <code>M3_CPUS = 94461668;</code> */
    public static final int M3_CPUS_VALUE = 94461668;
    /** <code>MACHINE_IMAGES = 446986640;</code> */
    public static final int MACHINE_IMAGES_VALUE = 446986640;
    /** <code>N2A_CPUS = 265855917;</code> */
    public static final int N2A_CPUS_VALUE = 265855917;
    /** <code>N2D_CPUS = 351743370;</code> */
    public static final int N2D_CPUS_VALUE = 351743370;
    /** <code>N2_CPUS = 416465286;</code> */
    public static final int N2_CPUS_VALUE = 416465286;
    /** <code>NETWORKS = 485481477;</code> */
    public static final int NETWORKS_VALUE = 485481477;
    /** <code>NETWORK_ATTACHMENTS = 149028575;</code> */
    public static final int NETWORK_ATTACHMENTS_VALUE = 149028575;
    /** <code>NETWORK_ENDPOINT_GROUPS = 102144909;</code> */
    public static final int NETWORK_ENDPOINT_GROUPS_VALUE = 102144909;
    /** <code>NETWORK_FIREWALL_POLICIES = 101117374;</code> */
    public static final int NETWORK_FIREWALL_POLICIES_VALUE = 101117374;
    /** <code>NODE_GROUPS = 24624817;</code> */
    public static final int NODE_GROUPS_VALUE = 24624817;
    /** <code>NODE_TEMPLATES = 474896668;</code> */
    public static final int NODE_TEMPLATES_VALUE = 474896668;
    /** <code>NVIDIA_A100_80GB_GPUS = 286389320;</code> */
    public static final int NVIDIA_A100_80GB_GPUS_VALUE = 286389320;
    /** <code>NVIDIA_A100_GPUS = 504872978;</code> */
    public static final int NVIDIA_A100_GPUS_VALUE = 504872978;
    /** <code>NVIDIA_K80_GPUS = 163886599;</code> */
    public static final int NVIDIA_K80_GPUS_VALUE = 163886599;
    /** <code>NVIDIA_P100_GPUS = 236601633;</code> */
    public static final int NVIDIA_P100_GPUS_VALUE = 236601633;
    /** <code>NVIDIA_P100_VWS_GPUS = 213970574;</code> */
    public static final int NVIDIA_P100_VWS_GPUS_VALUE = 213970574;
    /** <code>NVIDIA_P4_GPUS = 283841470;</code> */
    public static final int NVIDIA_P4_GPUS_VALUE = 283841470;
    /** <code>NVIDIA_P4_VWS_GPUS = 528296619;</code> */
    public static final int NVIDIA_P4_VWS_GPUS_VALUE = 528296619;
    /** <code>NVIDIA_T4_GPUS = 75759810;</code> */
    public static final int NVIDIA_T4_GPUS_VALUE = 75759810;
    /** <code>NVIDIA_T4_VWS_GPUS = 319813039;</code> */
    public static final int NVIDIA_T4_VWS_GPUS_VALUE = 319813039;
    /** <code>NVIDIA_V100_GPUS = 129293095;</code> */
    public static final int NVIDIA_V100_GPUS_VALUE = 129293095;
    /** <code>PACKET_MIRRORINGS = 15578407;</code> */
    public static final int PACKET_MIRRORINGS_VALUE = 15578407;
    /** <code>PD_EXTREME_TOTAL_PROVISIONED_IOPS = 69593965;</code> */
    public static final int PD_EXTREME_TOTAL_PROVISIONED_IOPS_VALUE = 69593965;
    /** <code>PREEMPTIBLE_CPUS = 251184841;</code> */
    public static final int PREEMPTIBLE_CPUS_VALUE = 251184841;
    /** <code>PREEMPTIBLE_LOCAL_SSD_GB = 260819336;</code> */
    public static final int PREEMPTIBLE_LOCAL_SSD_GB_VALUE = 260819336;
    /** <code>PREEMPTIBLE_NVIDIA_A100_80GB_GPUS = 151942410;</code> */
    public static final int PREEMPTIBLE_NVIDIA_A100_80GB_GPUS_VALUE = 151942410;
    /** <code>PREEMPTIBLE_NVIDIA_A100_GPUS = 68832784;</code> */
    public static final int PREEMPTIBLE_NVIDIA_A100_GPUS_VALUE = 68832784;
    /** <code>PREEMPTIBLE_NVIDIA_K80_GPUS = 374960201;</code> */
    public static final int PREEMPTIBLE_NVIDIA_K80_GPUS_VALUE = 374960201;
    /** <code>PREEMPTIBLE_NVIDIA_P100_GPUS = 337432351;</code> */
    public static final int PREEMPTIBLE_NVIDIA_P100_GPUS_VALUE = 337432351;
    /** <code>PREEMPTIBLE_NVIDIA_P100_VWS_GPUS = 313544076;</code> */
    public static final int PREEMPTIBLE_NVIDIA_P100_VWS_GPUS_VALUE = 313544076;
    /** <code>PREEMPTIBLE_NVIDIA_P4_GPUS = 429197628;</code> */
    public static final int PREEMPTIBLE_NVIDIA_P4_GPUS_VALUE = 429197628;
    /** <code>PREEMPTIBLE_NVIDIA_P4_VWS_GPUS = 252981545;</code> */
    public static final int PREEMPTIBLE_NVIDIA_P4_VWS_GPUS_VALUE = 252981545;
    /** <code>PREEMPTIBLE_NVIDIA_T4_GPUS = 221115968;</code> */
    public static final int PREEMPTIBLE_NVIDIA_T4_GPUS_VALUE = 221115968;
    /** <code>PREEMPTIBLE_NVIDIA_T4_VWS_GPUS = 44497965;</code> */
    public static final int PREEMPTIBLE_NVIDIA_T4_VWS_GPUS_VALUE = 44497965;
    /** <code>PREEMPTIBLE_NVIDIA_V100_GPUS = 230123813;</code> */
    public static final int PREEMPTIBLE_NVIDIA_V100_GPUS_VALUE = 230123813;
    /** <code>PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK = 231164291;</code> */
    public static final int PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK_VALUE =
        231164291;
    /** <code>PSC_INTERNAL_LB_FORWARDING_RULES = 169005435;</code> */
    public static final int PSC_INTERNAL_LB_FORWARDING_RULES_VALUE = 169005435;
    /** <code>PUBLIC_ADVERTISED_PREFIXES = 471371980;</code> */
    public static final int PUBLIC_ADVERTISED_PREFIXES_VALUE = 471371980;
    /** <code>PUBLIC_DELEGATED_PREFIXES = 532465974;</code> */
    public static final int PUBLIC_DELEGATED_PREFIXES_VALUE = 532465974;
    /** <code>REGIONAL_AUTOSCALERS = 29363772;</code> */
    public static final int REGIONAL_AUTOSCALERS_VALUE = 29363772;
    /** <code>REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES = 4240989;</code> */
    public static final int REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES_VALUE = 4240989;
    /** <code>REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES = 409564525;</code> */
    public static final int REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES_VALUE = 409564525;
    /** <code>REGIONAL_INSTANCE_GROUP_MANAGERS = 37543696;</code> */
    public static final int REGIONAL_INSTANCE_GROUP_MANAGERS_VALUE = 37543696;
    /** <code>REGIONAL_INTERNAL_LB_BACKEND_SERVICES = 137983760;</code> */
    public static final int REGIONAL_INTERNAL_LB_BACKEND_SERVICES_VALUE = 137983760;
    /** <code>REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES = 96282539;</code> */
    public static final int REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES_VALUE = 96282539;
    /** <code>RESERVATIONS = 32644647;</code> */
    public static final int RESERVATIONS_VALUE = 32644647;
    /** <code>RESOURCE_POLICIES = 83955297;</code> */
    public static final int RESOURCE_POLICIES_VALUE = 83955297;
    /** <code>ROUTERS = 493018666;</code> */
    public static final int ROUTERS_VALUE = 493018666;
    /** <code>ROUTES = 275680074;</code> */
    public static final int ROUTES_VALUE = 275680074;
    /** <code>SECURITY_POLICIES = 189518703;</code> */
    public static final int SECURITY_POLICIES_VALUE = 189518703;
    /** <code>SECURITY_POLICIES_PER_REGION = 249041734;</code> */
    public static final int SECURITY_POLICIES_PER_REGION_VALUE = 249041734;
    /** <code>SECURITY_POLICY_CEVAL_RULES = 470815689;</code> */
    public static final int SECURITY_POLICY_CEVAL_RULES_VALUE = 470815689;
    /** <code>SECURITY_POLICY_RULES = 203549225;</code> */
    public static final int SECURITY_POLICY_RULES_VALUE = 203549225;
    /** <code>SECURITY_POLICY_RULES_PER_REGION = 126510156;</code> */
    public static final int SECURITY_POLICY_RULES_PER_REGION_VALUE = 126510156;
    /** <code>SERVICE_ATTACHMENTS = 471521510;</code> */
    public static final int SERVICE_ATTACHMENTS_VALUE = 471521510;
    /**
     *
     *
     * <pre>
     * The total number of snapshots allowed for a single project.
     * </pre>
     *
     * <code>SNAPSHOTS = 343405327;</code>
     */
    public static final int SNAPSHOTS_VALUE = 343405327;
    /** <code>SSD_TOTAL_GB = 161732561;</code> */
    public static final int SSD_TOTAL_GB_VALUE = 161732561;
    /** <code>SSL_CERTIFICATES = 378372399;</code> */
    public static final int SSL_CERTIFICATES_VALUE = 378372399;
    /** <code>STATIC_ADDRESSES = 93624049;</code> */
    public static final int STATIC_ADDRESSES_VALUE = 93624049;
    /** <code>STATIC_BYOIP_ADDRESSES = 275809649;</code> */
    public static final int STATIC_BYOIP_ADDRESSES_VALUE = 275809649;
    /** <code>STATIC_EXTERNAL_IPV6_ADDRESS_RANGES = 472346774;</code> */
    public static final int STATIC_EXTERNAL_IPV6_ADDRESS_RANGES_VALUE = 472346774;
    /** <code>SUBNETWORKS = 421330469;</code> */
    public static final int SUBNETWORKS_VALUE = 421330469;
    /** <code>T2A_CPUS = 522170599;</code> */
    public static final int T2A_CPUS_VALUE = 522170599;
    /** <code>T2D_CPUS = 71187140;</code> */
    public static final int T2D_CPUS_VALUE = 71187140;
    /** <code>TARGET_HTTPS_PROXIES = 219522506;</code> */
    public static final int TARGET_HTTPS_PROXIES_VALUE = 219522506;
    /** <code>TARGET_HTTP_PROXIES = 164117155;</code> */
    public static final int TARGET_HTTP_PROXIES_VALUE = 164117155;
    /** <code>TARGET_INSTANCES = 284519728;</code> */
    public static final int TARGET_INSTANCES_VALUE = 284519728;
    /** <code>TARGET_POOLS = 348261257;</code> */
    public static final int TARGET_POOLS_VALUE = 348261257;
    /** <code>TARGET_SSL_PROXIES = 159216235;</code> */
    public static final int TARGET_SSL_PROXIES_VALUE = 159216235;
    /** <code>TARGET_TCP_PROXIES = 182243136;</code> */
    public static final int TARGET_TCP_PROXIES_VALUE = 182243136;
    /** <code>TARGET_VPN_GATEWAYS = 75029928;</code> */
    public static final int TARGET_VPN_GATEWAYS_VALUE = 75029928;
    /** <code>URL_MAPS = 378660743;</code> */
    public static final int URL_MAPS_VALUE = 378660743;
    /** <code>VPN_GATEWAYS = 35620282;</code> */
    public static final int VPN_GATEWAYS_VALUE = 35620282;
    /** <code>VPN_TUNNELS = 104327296;</code> */
    public static final int VPN_TUNNELS_VALUE = 104327296;
    /** <code>XPN_SERVICE_PROJECTS = 95191981;</code> */
    public static final int XPN_SERVICE_PROJECTS_VALUE = 95191981;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static Metric valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static Metric forNumber(int value) {
      switch (value) {
        case 0:
          return UNDEFINED_METRIC;
        case 153206585:
          return A2_CPUS;
        case 108303563:
          return AFFINITY_GROUPS;
        case 471248988:
          return AUTOSCALERS;
        case 137626846:
          return BACKEND_BUCKETS;
        case 269623753:
          return BACKEND_SERVICES;
        case 508182517:
          return C2D_CPUS;
        case 317601211:
          return C2_CPUS;
        case 346230362:
          return C3_CPUS;
        case 456141790:
          return COMMITMENTS;
        case 59330902:
          return COMMITTED_A2_CPUS;
        case 282390904:
          return COMMITTED_C2D_CPUS;
        case 223725528:
          return COMMITTED_C2_CPUS;
        case 252354679:
          return COMMITTED_C3_CPUS;
        case 292394702:
          return COMMITTED_CPUS;
        case 388120154:
          return COMMITTED_E2_CPUS;
        case 357606869:
          return COMMITTED_LICENSES;
        case 308393480:
          return COMMITTED_LOCAL_SSD_TOTAL_GB;
        case 585985:
          return COMMITTED_M3_CPUS;
        case 489057886:
          return COMMITTED_MEMORY_OPTIMIZED_CPUS;
        case 40064304:
          return COMMITTED_N2A_CPUS;
        case 125951757:
          return COMMITTED_N2D_CPUS;
        case 322589603:
          return COMMITTED_N2_CPUS;
        case 464326565:
          return COMMITTED_NVIDIA_A100_80GB_GPUS;
        case 375799445:
          return COMMITTED_NVIDIA_A100_GPUS;
        case 3857188:
          return COMMITTED_NVIDIA_K80_GPUS;
        case 107528100:
          return COMMITTED_NVIDIA_P100_GPUS;
        case 347952897:
          return COMMITTED_NVIDIA_P4_GPUS;
        case 139871237:
          return COMMITTED_NVIDIA_T4_GPUS;
        case 219562:
          return COMMITTED_NVIDIA_V100_GPUS;
        case 296378986:
          return COMMITTED_T2A_CPUS;
        case 382266439:
          return COMMITTED_T2D_CPUS;
        case 2075595:
          return CPUS;
        case 470911149:
          return CPUS_ALL_REGIONS;
        case 353520543:
          return DISKS_TOTAL_GB;
        case 481995837:
          return E2_CPUS;
        case 150790089:
          return EXTERNAL_MANAGED_FORWARDING_RULES;
        case 374298265:
          return EXTERNAL_NETWORK_LB_FORWARDING_RULES;
        case 63478888:
          return EXTERNAL_PROTOCOL_FORWARDING_RULES;
        case 272457134:
          return EXTERNAL_VPN_GATEWAYS;
        case 374485843:
          return FIREWALLS;
        case 432668949:
          return FORWARDING_RULES;
        case 164566753:
          return GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES;
        case 327611949:
          return GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES;
        case 400256169:
          return GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES;
        case 42738332:
          return GLOBAL_INTERNAL_ADDRESSES;
        case 256608303:
          return GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES;
        case 323514196:
          return GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES;
        case 39387177:
          return GPUS_ALL_REGIONS;
        case 289347502:
          return HEALTH_CHECKS;
        case 15562360:
          return IMAGES;
        case 131337822:
          return INSTANCES;
        case 355919038:
          return INSTANCE_GROUPS;
        case 101798192:
          return INSTANCE_GROUP_MANAGERS;
        case 226188271:
          return INSTANCE_TEMPLATES;
        case 415204741:
          return INTERCONNECTS;
        case 159968086:
          return INTERCONNECT_ATTACHMENTS_PER_REGION;
        case 425090419:
          return INTERCONNECT_ATTACHMENTS_TOTAL_MBPS;
        case 285341866:
          return INTERCONNECT_TOTAL_GBPS;
        case 197899392:
          return INTERNAL_ADDRESSES;
        case 266433668:
          return INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES;
        case 151359133:
          return IN_PLACE_SNAPSHOTS;
        case 402125072:
          return IN_USE_ADDRESSES;
        case 32786705:
          return IN_USE_BACKUP_SCHEDULES;
        case 462104083:
          return IN_USE_SNAPSHOT_SCHEDULES;
        case 330878021:
          return LOCAL_SSD_TOTAL_GB;
        case 37203366:
          return M1_CPUS;
        case 65832517:
          return M2_CPUS;
        case 94461668:
          return M3_CPUS;
        case 446986640:
          return MACHINE_IMAGES;
        case 265855917:
          return N2A_CPUS;
        case 351743370:
          return N2D_CPUS;
        case 416465286:
          return N2_CPUS;
        case 485481477:
          return NETWORKS;
        case 149028575:
          return NETWORK_ATTACHMENTS;
        case 102144909:
          return NETWORK_ENDPOINT_GROUPS;
        case 101117374:
          return NETWORK_FIREWALL_POLICIES;
        case 24624817:
          return NODE_GROUPS;
        case 474896668:
          return NODE_TEMPLATES;
        case 286389320:
          return NVIDIA_A100_80GB_GPUS;
        case 504872978:
          return NVIDIA_A100_GPUS;
        case 163886599:
          return NVIDIA_K80_GPUS;
        case 236601633:
          return NVIDIA_P100_GPUS;
        case 213970574:
          return NVIDIA_P100_VWS_GPUS;
        case 283841470:
          return NVIDIA_P4_GPUS;
        case 528296619:
          return NVIDIA_P4_VWS_GPUS;
        case 75759810:
          return NVIDIA_T4_GPUS;
        case 319813039:
          return NVIDIA_T4_VWS_GPUS;
        case 129293095:
          return NVIDIA_V100_GPUS;
        case 15578407:
          return PACKET_MIRRORINGS;
        case 69593965:
          return PD_EXTREME_TOTAL_PROVISIONED_IOPS;
        case 251184841:
          return PREEMPTIBLE_CPUS;
        case 260819336:
          return PREEMPTIBLE_LOCAL_SSD_GB;
        case 151942410:
          return PREEMPTIBLE_NVIDIA_A100_80GB_GPUS;
        case 68832784:
          return PREEMPTIBLE_NVIDIA_A100_GPUS;
        case 374960201:
          return PREEMPTIBLE_NVIDIA_K80_GPUS;
        case 337432351:
          return PREEMPTIBLE_NVIDIA_P100_GPUS;
        case 313544076:
          return PREEMPTIBLE_NVIDIA_P100_VWS_GPUS;
        case 429197628:
          return PREEMPTIBLE_NVIDIA_P4_GPUS;
        case 252981545:
          return PREEMPTIBLE_NVIDIA_P4_VWS_GPUS;
        case 221115968:
          return PREEMPTIBLE_NVIDIA_T4_GPUS;
        case 44497965:
          return PREEMPTIBLE_NVIDIA_T4_VWS_GPUS;
        case 230123813:
          return PREEMPTIBLE_NVIDIA_V100_GPUS;
        case 231164291:
          return PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK;
        case 169005435:
          return PSC_INTERNAL_LB_FORWARDING_RULES;
        case 471371980:
          return PUBLIC_ADVERTISED_PREFIXES;
        case 532465974:
          return PUBLIC_DELEGATED_PREFIXES;
        case 29363772:
          return REGIONAL_AUTOSCALERS;
        case 4240989:
          return REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES;
        case 409564525:
          return REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES;
        case 37543696:
          return REGIONAL_INSTANCE_GROUP_MANAGERS;
        case 137983760:
          return REGIONAL_INTERNAL_LB_BACKEND_SERVICES;
        case 96282539:
          return REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES;
        case 32644647:
          return RESERVATIONS;
        case 83955297:
          return RESOURCE_POLICIES;
        case 493018666:
          return ROUTERS;
        case 275680074:
          return ROUTES;
        case 189518703:
          return SECURITY_POLICIES;
        case 249041734:
          return SECURITY_POLICIES_PER_REGION;
        case 470815689:
          return SECURITY_POLICY_CEVAL_RULES;
        case 203549225:
          return SECURITY_POLICY_RULES;
        case 126510156:
          return SECURITY_POLICY_RULES_PER_REGION;
        case 471521510:
          return SERVICE_ATTACHMENTS;
        case 343405327:
          return SNAPSHOTS;
        case 161732561:
          return SSD_TOTAL_GB;
        case 378372399:
          return SSL_CERTIFICATES;
        case 93624049:
          return STATIC_ADDRESSES;
        case 275809649:
          return STATIC_BYOIP_ADDRESSES;
        case 472346774:
          return STATIC_EXTERNAL_IPV6_ADDRESS_RANGES;
        case 421330469:
          return SUBNETWORKS;
        case 522170599:
          return T2A_CPUS;
        case 71187140:
          return T2D_CPUS;
        case 219522506:
          return TARGET_HTTPS_PROXIES;
        case 164117155:
          return TARGET_HTTP_PROXIES;
        case 284519728:
          return TARGET_INSTANCES;
        case 348261257:
          return TARGET_POOLS;
        case 159216235:
          return TARGET_SSL_PROXIES;
        case 182243136:
          return TARGET_TCP_PROXIES;
        case 75029928:
          return TARGET_VPN_GATEWAYS;
        case 378660743:
          return URL_MAPS;
        case 35620282:
          return VPN_GATEWAYS;
        case 104327296:
          return VPN_TUNNELS;
        case 95191981:
          return XPN_SERVICE_PROJECTS;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Metric> internalGetValueMap() {
      return internalValueMap;
    }

    private static final com.google.protobuf.Internal.EnumLiteMap<Metric> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<Metric>() {
          public Metric findValueByNumber(int number) {
            return Metric.forNumber(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.cloud.compute.v1.Quota.getDescriptor().getEnumTypes().get(0);
    }

    private static final Metric[] VALUES = values();

    public static Metric valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private Metric(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:google.cloud.compute.v1.Quota.Metric)
  }

  private int bitField0_;
  public static final int LIMIT_FIELD_NUMBER = 102976443;
  private double limit_ = 0D;
  /**
   *
   *
   * <pre>
   * [Output Only] Quota limit for this metric.
   * </pre>
   *
   * <code>optional double limit = 102976443;</code>
   *
   * @return Whether the limit field is set.
   */
  @java.lang.Override
  public boolean hasLimit() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   *
   *
   * <pre>
   * [Output Only] Quota limit for this metric.
   * </pre>
   *
   * <code>optional double limit = 102976443;</code>
   *
   * @return The limit.
   */
  @java.lang.Override
  public double getLimit() {
    return limit_;
  }

  public static final int METRIC_FIELD_NUMBER = 533067184;

  @SuppressWarnings("serial")
  private volatile java.lang.Object metric_ = "";
  /**
   *
   *
   * <pre>
   * [Output Only] Name of the quota metric.
   * Check the Metric enum for the list of possible values.
   * </pre>
   *
   * <code>optional string metric = 533067184;</code>
   *
   * @return Whether the metric field is set.
   */
  @java.lang.Override
  public boolean hasMetric() {
    return ((bitField0_ & 0x00000002) != 0);
  }
  /**
   *
   *
   * <pre>
   * [Output Only] Name of the quota metric.
   * Check the Metric enum for the list of possible values.
   * </pre>
   *
   * <code>optional string metric = 533067184;</code>
   *
   * @return The metric.
   */
  @java.lang.Override
  public java.lang.String getMetric() {
    java.lang.Object ref = metric_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      metric_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * [Output Only] Name of the quota metric.
   * Check the Metric enum for the list of possible values.
   * </pre>
   *
   * <code>optional string metric = 533067184;</code>
   *
   * @return The bytes for metric.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getMetricBytes() {
    java.lang.Object ref = metric_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      metric_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int OWNER_FIELD_NUMBER = 106164915;

  @SuppressWarnings("serial")
  private volatile java.lang.Object owner_ = "";
  /**
   *
   *
   * <pre>
   * [Output Only] Owning resource. This is the resource on which this quota is applied.
   * </pre>
   *
   * <code>optional string owner = 106164915;</code>
   *
   * @return Whether the owner field is set.
   */
  @java.lang.Override
  public boolean hasOwner() {
    return ((bitField0_ & 0x00000004) != 0);
  }
  /**
   *
   *
   * <pre>
   * [Output Only] Owning resource. This is the resource on which this quota is applied.
   * </pre>
   *
   * <code>optional string owner = 106164915;</code>
   *
   * @return The owner.
   */
  @java.lang.Override
  public java.lang.String getOwner() {
    java.lang.Object ref = owner_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      owner_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * [Output Only] Owning resource. This is the resource on which this quota is applied.
   * </pre>
   *
   * <code>optional string owner = 106164915;</code>
   *
   * @return The bytes for owner.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getOwnerBytes() {
    java.lang.Object ref = owner_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      owner_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int USAGE_FIELD_NUMBER = 111574433;
  private double usage_ = 0D;
  /**
   *
   *
   * <pre>
   * [Output Only] Current usage of this metric.
   * </pre>
   *
   * <code>optional double usage = 111574433;</code>
   *
   * @return Whether the usage field is set.
   */
  @java.lang.Override
  public boolean hasUsage() {
    return ((bitField0_ & 0x00000008) != 0);
  }
  /**
   *
   *
   * <pre>
   * [Output Only] Current usage of this metric.
   * </pre>
   *
   * <code>optional double usage = 111574433;</code>
   *
   * @return The usage.
   */
  @java.lang.Override
  public double getUsage() {
    return usage_;
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeDouble(102976443, limit_);
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 106164915, owner_);
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      output.writeDouble(111574433, usage_);
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 533067184, metric_);
    }
    getUnknownFields().writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (((bitField0_ & 0x00000001) != 0)) {
      size += com.google.protobuf.CodedOutputStream.computeDoubleSize(102976443, limit_);
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(106164915, owner_);
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      size += com.google.protobuf.CodedOutputStream.computeDoubleSize(111574433, usage_);
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(533067184, metric_);
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof com.google.cloud.compute.v1.Quota)) {
      return super.equals(obj);
    }
    com.google.cloud.compute.v1.Quota other = (com.google.cloud.compute.v1.Quota) obj;

    if (hasLimit() != other.hasLimit()) return false;
    if (hasLimit()) {
      if (java.lang.Double.doubleToLongBits(getLimit())
          != java.lang.Double.doubleToLongBits(other.getLimit())) return false;
    }
    if (hasMetric() != other.hasMetric()) return false;
    if (hasMetric()) {
      if (!getMetric().equals(other.getMetric())) return false;
    }
    if (hasOwner() != other.hasOwner()) return false;
    if (hasOwner()) {
      if (!getOwner().equals(other.getOwner())) return false;
    }
    if (hasUsage() != other.hasUsage()) return false;
    if (hasUsage()) {
      if (java.lang.Double.doubleToLongBits(getUsage())
          != java.lang.Double.doubleToLongBits(other.getUsage())) return false;
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasLimit()) {
      hash = (37 * hash) + LIMIT_FIELD_NUMBER;
      hash =
          (53 * hash)
              + com.google.protobuf.Internal.hashLong(
                  java.lang.Double.doubleToLongBits(getLimit()));
    }
    if (hasMetric()) {
      hash = (37 * hash) + METRIC_FIELD_NUMBER;
      hash = (53 * hash) + getMetric().hashCode();
    }
    if (hasOwner()) {
      hash = (37 * hash) + OWNER_FIELD_NUMBER;
      hash = (53 * hash) + getOwner().hashCode();
    }
    if (hasUsage()) {
      hash = (37 * hash) + USAGE_FIELD_NUMBER;
      hash =
          (53 * hash)
              + com.google.protobuf.Internal.hashLong(
                  java.lang.Double.doubleToLongBits(getUsage()));
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(
      java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(
      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.cloud.compute.v1.Quota parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.cloud.compute.v1.Quota parseDelimitedFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(
      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.cloud.compute.v1.Quota parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(com.google.cloud.compute.v1.Quota prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * A quotas entry.
   * </pre>
   *
   * Protobuf type {@code google.cloud.compute.v1.Quota}
   */
  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.cloud.compute.v1.Quota)
      com.google.cloud.compute.v1.QuotaOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.cloud.compute.v1.Compute
          .internal_static_google_cloud_compute_v1_Quota_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.cloud.compute.v1.Compute
          .internal_static_google_cloud_compute_v1_Quota_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.cloud.compute.v1.Quota.class,
              com.google.cloud.compute.v1.Quota.Builder.class);
    }

    // Construct using com.google.cloud.compute.v1.Quota.newBuilder()
    private Builder() {}

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      bitField0_ = 0;
      limit_ = 0D;
      metric_ = "";
      owner_ = "";
      usage_ = 0D;
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.cloud.compute.v1.Compute
          .internal_static_google_cloud_compute_v1_Quota_descriptor;
    }

    @java.lang.Override
    public com.google.cloud.compute.v1.Quota getDefaultInstanceForType() {
      return com.google.cloud.compute.v1.Quota.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.cloud.compute.v1.Quota build() {
      com.google.cloud.compute.v1.Quota result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.cloud.compute.v1.Quota buildPartial() {
      com.google.cloud.compute.v1.Quota result = new com.google.cloud.compute.v1.Quota(this);
      if (bitField0_ != 0) {
        buildPartial0(result);
      }
      onBuilt();
      return result;
    }

    private void buildPartial0(com.google.cloud.compute.v1.Quota result) {
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        result.limit_ = limit_;
        to_bitField0_ |= 0x00000001;
      }
      if (((from_bitField0_ & 0x00000002) != 0)) {
        result.metric_ = metric_;
        to_bitField0_ |= 0x00000002;
      }
      if (((from_bitField0_ & 0x00000004) != 0)) {
        result.owner_ = owner_;
        to_bitField0_ |= 0x00000004;
      }
      if (((from_bitField0_ & 0x00000008) != 0)) {
        result.usage_ = usage_;
        to_bitField0_ |= 0x00000008;
      }
      result.bitField0_ |= to_bitField0_;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof com.google.cloud.compute.v1.Quota) {
        return mergeFrom((com.google.cloud.compute.v1.Quota) other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(com.google.cloud.compute.v1.Quota other) {
      if (other == com.google.cloud.compute.v1.Quota.getDefaultInstance()) return this;
      if (other.hasLimit()) {
        setLimit(other.getLimit());
      }
      if (other.hasMetric()) {
        metric_ = other.metric_;
        bitField0_ |= 0x00000002;
        onChanged();
      }
      if (other.hasOwner()) {
        owner_ = other.owner_;
        bitField0_ |= 0x00000004;
        onChanged();
      }
      if (other.hasUsage()) {
        setUsage(other.getUsage());
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 823811545:
              {
                limit_ = input.readDouble();
                bitField0_ |= 0x00000001;
                break;
              } // case 823811545
            case 849319322:
              {
                owner_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000004;
                break;
              } // case 849319322
            case 892595465:
              {
                usage_ = input.readDouble();
                bitField0_ |= 0x00000008;
                break;
              } // case 892595465
            case -30429822:
              {
                metric_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case -30429822
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }

    private int bitField0_;

    private double limit_;
    /**
     *
     *
     * <pre>
     * [Output Only] Quota limit for this metric.
     * </pre>
     *
     * <code>optional double limit = 102976443;</code>
     *
     * @return Whether the limit field is set.
     */
    @java.lang.Override
    public boolean hasLimit() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Quota limit for this metric.
     * </pre>
     *
     * <code>optional double limit = 102976443;</code>
     *
     * @return The limit.
     */
    @java.lang.Override
    public double getLimit() {
      return limit_;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Quota limit for this metric.
     * </pre>
     *
     * <code>optional double limit = 102976443;</code>
     *
     * @param value The limit to set.
     * @return This builder for chaining.
     */
    public Builder setLimit(double value) {

      limit_ = value;
      bitField0_ |= 0x00000001;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Quota limit for this metric.
     * </pre>
     *
     * <code>optional double limit = 102976443;</code>
     *
     * @return This builder for chaining.
     */
    public Builder clearLimit() {
      bitField0_ = (bitField0_ & ~0x00000001);
      limit_ = 0D;
      onChanged();
      return this;
    }

    private java.lang.Object metric_ = "";
    /**
     *
     *
     * <pre>
     * [Output Only] Name of the quota metric.
     * Check the Metric enum for the list of possible values.
     * </pre>
     *
     * <code>optional string metric = 533067184;</code>
     *
     * @return Whether the metric field is set.
     */
    public boolean hasMetric() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Name of the quota metric.
     * Check the Metric enum for the list of possible values.
     * </pre>
     *
     * <code>optional string metric = 533067184;</code>
     *
     * @return The metric.
     */
    public java.lang.String getMetric() {
      java.lang.Object ref = metric_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        metric_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Name of the quota metric.
     * Check the Metric enum for the list of possible values.
     * </pre>
     *
     * <code>optional string metric = 533067184;</code>
     *
     * @return The bytes for metric.
     */
    public com.google.protobuf.ByteString getMetricBytes() {
      java.lang.Object ref = metric_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        metric_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Name of the quota metric.
     * Check the Metric enum for the list of possible values.
     * </pre>
     *
     * <code>optional string metric = 533067184;</code>
     *
     * @param value The metric to set.
     * @return This builder for chaining.
     */
    public Builder setMetric(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }
      metric_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Name of the quota metric.
     * Check the Metric enum for the list of possible values.
     * </pre>
     *
     * <code>optional string metric = 533067184;</code>
     *
     * @return This builder for chaining.
     */
    public Builder clearMetric() {
      metric_ = getDefaultInstance().getMetric();
      bitField0_ = (bitField0_ & ~0x00000002);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Name of the quota metric.
     * Check the Metric enum for the list of possible values.
     * </pre>
     *
     * <code>optional string metric = 533067184;</code>
     *
     * @param value The bytes for metric to set.
     * @return This builder for chaining.
     */
    public Builder setMetricBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);
      metric_ = value;
      bitField0_ |= 0x00000002;
      onChanged();
      return this;
    }

    private java.lang.Object owner_ = "";
    /**
     *
     *
     * <pre>
     * [Output Only] Owning resource. This is the resource on which this quota is applied.
     * </pre>
     *
     * <code>optional string owner = 106164915;</code>
     *
     * @return Whether the owner field is set.
     */
    public boolean hasOwner() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Owning resource. This is the resource on which this quota is applied.
     * </pre>
     *
     * <code>optional string owner = 106164915;</code>
     *
     * @return The owner.
     */
    public java.lang.String getOwner() {
      java.lang.Object ref = owner_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        owner_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Owning resource. This is the resource on which this quota is applied.
     * </pre>
     *
     * <code>optional string owner = 106164915;</code>
     *
     * @return The bytes for owner.
     */
    public com.google.protobuf.ByteString getOwnerBytes() {
      java.lang.Object ref = owner_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        owner_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Owning resource. This is the resource on which this quota is applied.
     * </pre>
     *
     * <code>optional string owner = 106164915;</code>
     *
     * @param value The owner to set.
     * @return This builder for chaining.
     */
    public Builder setOwner(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }
      owner_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Owning resource. This is the resource on which this quota is applied.
     * </pre>
     *
     * <code>optional string owner = 106164915;</code>
     *
     * @return This builder for chaining.
     */
    public Builder clearOwner() {
      owner_ = getDefaultInstance().getOwner();
      bitField0_ = (bitField0_ & ~0x00000004);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Owning resource. This is the resource on which this quota is applied.
     * </pre>
     *
     * <code>optional string owner = 106164915;</code>
     *
     * @param value The bytes for owner to set.
     * @return This builder for chaining.
     */
    public Builder setOwnerBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);
      owner_ = value;
      bitField0_ |= 0x00000004;
      onChanged();
      return this;
    }

    private double usage_;
    /**
     *
     *
     * <pre>
     * [Output Only] Current usage of this metric.
     * </pre>
     *
     * <code>optional double usage = 111574433;</code>
     *
     * @return Whether the usage field is set.
     */
    @java.lang.Override
    public boolean hasUsage() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Current usage of this metric.
     * </pre>
     *
     * <code>optional double usage = 111574433;</code>
     *
     * @return The usage.
     */
    @java.lang.Override
    public double getUsage() {
      return usage_;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Current usage of this metric.
     * </pre>
     *
     * <code>optional double usage = 111574433;</code>
     *
     * @param value The usage to set.
     * @return This builder for chaining.
     */
    public Builder setUsage(double value) {

      usage_ = value;
      bitField0_ |= 0x00000008;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * [Output Only] Current usage of this metric.
     * </pre>
     *
     * <code>optional double usage = 111574433;</code>
     *
     * @return This builder for chaining.
     */
    public Builder clearUsage() {
      bitField0_ = (bitField0_ & ~0x00000008);
      usage_ = 0D;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.cloud.compute.v1.Quota)
  }

  // @@protoc_insertion_point(class_scope:google.cloud.compute.v1.Quota)
  private static final com.google.cloud.compute.v1.Quota DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE = new com.google.cloud.compute.v1.Quota();
  }

  public static com.google.cloud.compute.v1.Quota getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<Quota> PARSER =
      new com.google.protobuf.AbstractParser<Quota>() {
        @java.lang.Override
        public Quota parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

  public static com.google.protobuf.Parser<Quota> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<Quota> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.cloud.compute.v1.Quota getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
}
